Example #1
0
        /// <summary>
        /// Выполнение выборки Sql на сервере касательно сериализации десериализации
        /// </summary>
        /// <typeparam name="TKey">Ключ параметра</typeparam>
        /// <typeparam name="TValue">Тип параметра</typeparam>
        /// <param name="conectionstring">Строка соединения</param>
        /// <param name="select">Команда Select</param>
        /// <param name="type">Тип возвращаемого значения класса образец "(SysNum)SelectFullSqlReader(conectionString, select,typeof(SysNum)"</param>
        /// <param name="listparametr">Словарь параметров</param>
        /// <returns>Возвращаем object для дальнейшего разбора по классу</returns>
        public object SelectFullParametrSqlReader <TKey, TValue>(string conectionstring, string select, Type type, Dictionary <TKey, TValue> listparametr = null)
        {
            SqlDesirialization xmldesirealiz = new SqlDesirialization();
            object             obj;

            if (listparametr?.Count > 0)
            {
                GenerateParametrSql.GenerateParametrSql sql = new GenerateParametrSql.GenerateParametrSql();
                sql.GenerateStringParametr(ref select, listparametr);
            }
            using (var con = new SqlConnection(conectionstring))
            {
                using (var cmd = new SqlCommand(select, con))
                {
                    cmd.Connection.Open();
                    using (XmlReader reader = cmd.ExecuteXmlReader())
                    {
                        obj = xmldesirealiz.ReadXml(reader, type);
                        if (obj == null)
                        {
                            Loggers.Log4NetLogger.Error(new Exception($"Объект {type.FullName} вернул NULL"));
                        }
                    }
                    cmd.Connection.Close();
                }
                SqlConnection.ClearPool(con);
            }
            return(obj);
        }
Example #2
0
        /// <summary>
        /// Функция выполнения процедуры и с параметром и без параметров
        /// 1 - Если нет параметров то выполняется процедура без параметров
        /// 2 - Если есть параметры то выполняется Генерация параметров для SqlCommand а потом и процедура
        /// </summary>
        /// <typeparam name="TKey">Ключ параметра</typeparam>
        /// <typeparam name="TValue">Тип параметра</typeparam>
        /// <param name="conectionstring">Строка соединения</param>
        /// <param name="procedure">Название процедуры</param>
        /// <param name="listparametr">Словарь параметров</param>
        /// <returns>Сообщение от сервера</returns>
        public string StartingProcedure <TKey, TValue>(string conectionstring, string procedure, Dictionary <TKey, TValue> listparametr = null)
        {
            try
            {
                Sobytie sobytie = new Sobytie {
                    Messages = null
                };
                using (var con = new SqlConnection(conectionstring))
                {
                    SqlCommand command = new SqlCommand(procedure)
                    {
                        CommandType = CommandType.StoredProcedure, Connection = con, CommandTimeout = 0
                    };
                    con.InfoMessage += sobytie.Con_InfoMessage;
                    if (listparametr?.Count > 0)
                    {
                        GenerateParametrSql.GenerateParametrSql sql = new GenerateParametrSql.GenerateParametrSql();
                        command = sql.GenerateParametrs(command, listparametr);
                    }
                    con.Open();

                    using (command.ExecuteReader())
                    {
                    }
                    con.Close();
                    SqlConnection.ClearPool(con);
                }
                return(sobytie.Messages);
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Example #3
0
        /// <summary>
        /// Процедуры предпроверки
        /// </summary>
        /// <param name="connection">Строка соединения</param>
        /// <param name="seting">Настройки</param>
        /// <returns></returns>
        public async Task <string> TaskSqlProcedureSoprovod(string connection, FullSetting seting)
        {
            var sqlconnect = new SqlConnectionType();

            GenerateParametrSql.GenerateParametrSql sql          = new GenerateParametrSql.GenerateParametrSql();
            Dictionary <string, string>             listparametr = new Dictionary <string, string>();

            if (seting.ParamPredproverka.N441 != 0)
            {
                sql.CreateParamert(ref listparametr, seting.ParamPredproverka.GetType(), seting.ParamPredproverka);
            }
            switch (seting.Id)
            {
            case 1:
                return(await Task.Factory.StartNew(() => sqlconnect.StartingProcedure(connection, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(connection, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand("15"))).ServiceWcfCommand.Command, listparametr)));

            case 2:
                return(await Task.Factory.StartNew(() => sqlconnect.StartingProcedure(connection, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(connection, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand("16"))).ServiceWcfCommand.Command, listparametr)));

            case 3:
                return(await Task.Factory.StartNew(() => sqlconnect.StartingProcedure(connection, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(connection, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand("17"))).ServiceWcfCommand.Command, listparametr)));

            default:
                return(null);
            }
        }
Example #4
0
        /// <summary>
        /// Шаблон который используем написано кустарно нужно давать Ун шаблона на вход!!!
        /// </summary>
        /// <param name="conectionstring">Строка соединения</param>
        /// <param name="setting">Параметры шаблона</param>
        /// <returns></returns>
        public Document Template(string conectionstring, FullSetting setting)
        {
            var sqlconnect = new SqlConnectionType();
            Dictionary <string, string> listparametr = new Dictionary <string, string>();

            GenerateParametrSql.GenerateParametrSql sql = new GenerateParametrSql.GenerateParametrSql();
            if (setting.UseTemplate.IdTemplate != 0)
            {
                sql.CreateParamert(ref listparametr, setting.UseTemplate.GetType(), setting.UseTemplate);
            }
            return((Document)sqlconnect.SelectFullParametrSqlReader(conectionstring, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(conectionstring, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand("10"))).ServiceWcfCommand.Command, typeof(Document), listparametr));
        }
Example #5
0
        /// <summary>
        /// Выполнение процедур возвращающие таблицу
        /// и подписывание его на событие SignalR для возврата сообщений пользователю с сервера!!!
        /// </summary>
        /// <typeparam name="TKey">ключ как правило string</typeparam>
        /// <typeparam name="TValue">Параметр как правило string</typeparam>
        /// <param name="conectionString">Строка соединения с сервером</param>
        /// <param name="procedure">Процедура</param>
        /// <param name="usernameguid">Имя пользователя для возврата сообщений</param>
        /// <param name="listparametr">Лист параметров для процедуры!!!</param>
        /// <returns></returns>
        public async Task <DataSet> ProcedureReturnTable <TKey, TValue>(string conectionString, string procedure, string usernameguid = null, Dictionary <TKey, TValue> listparametr = null)
        {
            try
            {
                DataSet dataset = new DataSet();

                return(await Task <DataSet> .Factory.StartNew(() =>
                {
                    using (var con = new SqlConnection(conectionString))
                    {
                        var cmd = new SqlCommand(procedure)
                        {
                            CommandType = CommandType.StoredProcedure,
                            Connection = con,
                            CommandTimeout = 0
                        };
                        if (usernameguid != null)
                        {
                            Sobytie sobriety = new Sobytie(usernameguid)
                            {
                                Messages = null
                            };
                            con.InfoMessage += sobriety.Con_InfoMessageSignalR;
                        }
                        if (listparametr?.Count > 0)
                        {
                            GenerateParametrSql.GenerateParametrSql sql =
                                new GenerateParametrSql.GenerateParametrSql();
                            cmd = sql.GenerateParametrs(cmd, listparametr);
                        }
                        con.Open();
                        using (var sqlReport = new SqlDataAdapter(cmd))
                        {
                            sqlReport.Fill(dataset);
                        }
                        con.Close();
                        SqlConnection.ClearPool(con);
                        return dataset;
                    }
                }));
            }
            catch (Exception e)
            {
                Loggers.Log4NetLogger.Error(e);
                return(null);
            }
        }
Example #6
0
 /// <summary>
 /// Данные которые будут раскладываться на шаблоне
 /// </summary>
 /// <param name="conectionstring">Строка соединения с сервером</param>
 /// <param name="connecttestsqlcommand">Строка соединения с таблицей комманд для запроса данных</param>
 /// <param name="setting">Настроики пользователя</param>
 /// <returns></returns>
 public Report ReportBdk(string conectionstring, string connecttestsqlcommand, FullSetting setting)
 {
     try
     {
         var sqlconnect = new SqlConnectionType();
         Dictionary <string, string>             listparametr = new Dictionary <string, string>();
         GenerateParametrSql.GenerateParametrSql sql          = new GenerateParametrSql.GenerateParametrSql();
         if (setting.ParametrBdkOut.D85DateStart != DateTime.MinValue)
         {
             sql.CreateParamert(ref listparametr, setting.ParametrBdkOut.GetType(), setting.ParametrBdkOut);
         }
         return((Report)sqlconnect.SelectFullParametrSqlReader(conectionstring, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(connecttestsqlcommand, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand("11"))).ServiceWcfCommand.Command, typeof(Report), listparametr));
     }
     catch (Exception e)
     {
         Loggers.Log4NetLogger.Error(e);
     }
     return(null);
 }
Example #7
0
        public async Task <DataSet> TaskSqlProcedureKam5(string connection, FullSetting seting)
        {
            var sqlconnect = new SqlConnectionType();

            GenerateParametrSql.GenerateParametrSql sql          = new GenerateParametrSql.GenerateParametrSql();
            Dictionary <string, string>             listparametr = new Dictionary <string, string>();

            if (seting.ReportRvs.Qvartal != 0)
            {
                sql.CreateParamert(ref listparametr, seting.ReportRvs.GetType(), seting.ReportRvs);
            }
            switch (seting.ParamService.IdCommand)
            {
            case 28:
                return(await await Task.Factory.StartNew(() => sqlconnect.ProcedureReturnTable(connection, ((ServiceWcf)sqlconnect.SelectFullParametrSqlReader(connection, ModelSqlFullService.ProcedureSelectParametr, typeof(ServiceWcf), ModelSqlFullService.ParamCommand(seting.ParamService.IdCommand.ToString()))).ServiceWcfCommand.Command, seting.ModelUser.UserNameGuide, listparametr)));

            default:
                return(null);
            }
        }