//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// DataHelpers.SQL satellite library | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using u = user_rtx;

namespace DataHelpers.SQL {
//--------------------------------------------------------------------------------------------------

[h_db_orm_type]
public enum HSPResultStateForm { Invalid = 0, Available }

[h_db_orm_type]
public class HSPResultParameters
{
   public readonly SqlParameter RetValue;
   public readonly SqlParameter Status;
   public readonly SqlParameter OutMessage;

   public HSPResultParameters( SqlParameter retValueParam,
                               SqlParameter statusParam,
                               SqlParameter outMessageParam )
   {
      RetValue = retValueParam;
      Status = statusParam;
      OutMessage = outMessageParam;
   }
} // HSPResultParameters

[h_db_orm_type]
static class HSPResultError
{
   public static InvalidOperationException Unavailable =>
      new InvalidOperationException(u.local.T(
         "Stored procedure result is unavailable.",
         "Результаты хранимой процедуры недоступны." ));

   public static InvalidOperationException NotException =>
      new InvalidOperationException(u.local.T(
         "Stored procedure result is not an exception.",
         "Результат хранимой процедуры не является исключением." ));
   public static InvalidOperationException OutMessageUnavailable =>
      new InvalidOperationException(u.local.T(
         "Stored procedure output message is unavailable.",
         "Выходное сообщение хранимой процедуры недоступно." ));
   public static InvalidOperationException OutputDataUnavailable =>
      new InvalidOperationException(u.local.T(
         "Output data of stored procedure result is unavailable.",
         "Выходные данные результатов хранимой процедуры недоступны." ));

   public static InvalidOperationException OutputListUnavailable =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable.",
         "Выходной список результатов хранимой процедуры недоступен." ));
   public static InvalidOperationException OutputListUnavailable_1 =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable (#1).",
         "Выходной список результатов хранимой процедуры недоступен (#1)." ));
   public static InvalidOperationException OutputListUnavailable_2 =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable (#2).",
         "Выходной список результатов хранимой процедуры недоступен (#2)." ));
   public static InvalidOperationException OutputListUnavailable_3 =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable (#3).",
         "Выходной список результатов хранимой процедуры недоступен (#3)." ));
   public static InvalidOperationException OutputListUnavailable_4 =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable (#4).",
         "Выходной список результатов хранимой процедуры недоступен (#4)." ));
   public static InvalidOperationException OutputListUnavailable_5 =>
      new InvalidOperationException(u.local.T(
         "Output list of stored procedure result is unavailable (#5).",
         "Выходной список результатов хранимой процедуры недоступен (#5)." ));
} // HSPResultError

[h_db_orm_type]
static class HSPResultErrorMsg
{
   public static string ErrorMessageNotProvided =>
      u.local.T(
         "Error message was not provided.",
         "Сообщение ошибки не было предоставлено." );
   public static string NoError =>
      u.local.T(
         "Operation completed successfully.",
         "Операция выполнена успешно." );
} // HSPResultErrorMsg

//--------------------------------------------------------------------------------------------------
} // DataHelpers.SQL
