Esempio n. 1
0
        ///<summary>МЕТОД Фабрика объекта ListShablon</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodShablon">Код шаблона</param>
        public static UserListShablon MET_FactoryListShablon(eTipDocum pTip, int pCodShablon)
        {
            // Коллекция ListShablons
            List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons;
            //  Ищем в коллекции ListShablon по типу и номеру шаблона
            UserListShablon _Value = _ListShablons.FirstOrDefault(p => p.PROP_Cod == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip);

            // Если не нашли, то пытаемся ListShablon создать
            if (_Value == null)
            {
                _Value = new UserListShablon();
                // Загружаем данные из SQL
                try
                {
                    var           _TipProtokol   = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_3(pCodShablon, _TipProtokol.PROP_Prefix));
                    _SqlDataReader.Read();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _SqlDataReader.Close();
                    _ListShablons.Add(_Value);
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных ListShablon из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
            }
            return(_Value);
        }
Esempio n. 2
0
        /// <summary>МЕТОД Фабрика Массовая загрузка всех объектов ListShablon для загруженной коллекции Protokol</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <remarks>Делается как правило разово из MET_FactoryProtokolArray</remarks>
        public static bool MET_FactoryListShablonArray(eTipDocum pTip)
        {
            // Коллекция ListShablons
            List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons;
            // Находим список кодов шаблонов (пример: 101, 110, 120, 0), в конце добавляем ноль, что бы перекрыть последнюю запятую или в пустом списке был просто ноль
            string _NomShablons = ((VirtualModul)MyGlo.Modul).PUB_Protokol.Select(i => i.PROP_NumShablon).Distinct().Aggregate("", (s, i) => s + i + ", ") + "0";

            try
            {
                var           _TipProtokol   = new MyTipProtokol(pTip);
                SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_4(_TipProtokol.PROP_Prefix, _NomShablons));
                // Перебираем весь поток и дабавляем все строки ListShablon
                while (_SqlDataReader.Read())
                {
                    UserListShablon _Value = new UserListShablon();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _ListShablons.Add(_Value);
                }
                _SqlDataReader.Close();
                return(true);
            }
            catch (Exception ex)
            {
                MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных ListShablon из SQL");
                MyGlo.Event_Error(ex);
                return(false);
            }
        }