Esempio n. 1
0
        ///<summary>МЕТОД Фабрика объекта Protokol</summary>
        /// <param name="pTip">Тип протокола</param>
        /// <param name="pCodApstac">Код посещения</param>
        /// <param name="pCodShablon">Код шаблона</param>
        /// <param name="pIndex">Индекс протокола</param>
        public static UserProtokol MET_FactoryProtokol(eTipDocum pTip, decimal pCodApstac, int pCodShablon, int pIndex)
        {
            // Коллекция Protokol
            List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol;
            //  Ищем в коллекции Protokol по типу, коду Apstac, номеру шаблона и индексу
            UserProtokol _Value = _Protokol.FirstOrDefault(p => p.PROP_TipProtokol.PROP_TipDocum == pTip &&
                                                           p.PROP_CodApstac == pCodApstac && p.PROP_NumShablon == pCodShablon && p.PROP_pIndex == pIndex);

            // Если не нашли, то пытаемся Protokol создать
            if (_Value == null)
            {
                _Value = new UserProtokol();
                // Загружаем данные из SQL
                try
                {
                    var           _TipProtokol   = new MyTipProtokol(pTip);
                    SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_5(pCodApstac, pCodShablon, pIndex, _TipProtokol.PROP_Prefix));
                    _SqlDataReader.Read();
                    _Value.MET_LoadDataReader(_SqlDataReader);
                    _Value.PROP_TipProtokol = _TipProtokol;
                    _SqlDataReader.Close();
                    _Protokol.Add(_Value);
                }
                catch (Exception ex)
                {
                    MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Protokol из SQL");
                    MyGlo.Event_Error(ex);
                    _Value = null;
                }
            }
            return(_Value);
        }