예제 #1
0
        /// <summary>МЕТОД Фабрика Массовая загрузка всех объектов Shablon для загруженной коллекции Protokol</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <remarks>Делается как из MET_FactoryProtokolArray</remarks>
        public static bool MET_FactoryShablonArray(eTipDocum pTip)
        {
            // Коллекция ListShablons
            List <UserShablon> _Shablons = ((VirtualModul)MyGlo.Modul).PUB_Shablon;
            // Находим список кодов шаблонов (пример: 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_Shablon_Select_4(_TipProtokol.PROP_Prefix, _NomShablons));
                // Перебираем весь поток и дабавляем все шаблоны
                while (_SqlDataReader.Read())
                {
                    UserShablon _Value = new UserShablon();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _Value.PROP_FlagEdit    = false;
                    _Shablons.Add(_Value);
                }
                _SqlDataReader.Close();
                return(true);
            }
            catch (Exception ex)
            {
                MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных ListShablon из SQL");
                MyGlo.Event_Error(ex);
                return(false);
            }
        }
예제 #2
0
        ///<summary>МЕТОД Фабрика объектов Shablon</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodShablon">Код шаблона</param>
        public static List <UserShablon> MET_FactoryListShablon(eTipDocum pTip, int pCodShablon)
        {
            // Коллекция Shablon
            List <UserShablon> _Shablons = ((VirtualModul)MyGlo.Modul).PUB_Shablon;
            //  Ищем в коллекции <Shablon> по типу и номеру шаблона
            List <UserShablon> _Value = _Shablons.Where(p => p.PROP_ID == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip).ToList();

            // Если не нашли, то пытаемся <Shablon> загрузить из SQL
            if (!_Value.Any())
            {
                try
                {
                    MyTipProtokol _Tip           = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Shablon_Select_3(pCodShablon, _Tip.PROP_Prefix));
                    while (_SqlDataReader.Read())
                    {
                        UserShablon _Shablon = new UserShablon();
                        _Shablon.MET_LoadDataReader(_SqlDataReader);
                        _Shablon.PROP_TipProtokol = _Tip;
                        // После загрузки, сбрасываем флаг редактирования
                        _Shablon.PROP_FlagEdit = false;
                        _Value.Add(_Shablon);
                    }
                    _SqlDataReader.Close();
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Shablon из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
                // Добавляем наши вопросы в библиотеку
                if (_Value != null)
                {
                    _Shablons?.AddRange(_Value);
                }
            }
            return(_Value);
        }