///<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); }
/// <summary>МЕТОД Фабрика Массовая загрузка всех объектов Protokol одного посещения/стационара</summary> /// <param name="pTip">Тип протокола</param> /// <param name="pCodApstacKL">Код посещения/пациента</param> /// <param name="pTipFind">Ищем по CodApstac или по KL</param> public static bool MET_FactoryProtokolArray(eTipDocum pTip, decimal pCodApstacKL, string pTipFind = "CodApstac") { // Коллекция Protokol List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol; try { var _TipProtokol = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_12(pCodApstacKL, _TipProtokol.PROP_Prefix, pTipFind)); // Перебираем весь поток и дабавляем все Protokolы while (_SqlDataReader.Read()) { UserProtokol _Value = new UserProtokol(); _Value.MET_LoadDataReader(_SqlDataReader); _Value.PROP_TipProtokol = _TipProtokol; _Protokol.Add(_Value); } _SqlDataReader.Close(); // Загружаем все заголовки шаблонов ListShablon по загруженным протоколам UserListShablon.MET_FactoryListShablonArray(pTip); // Загружаем все заголовки шаблонов Shablon по загруженным протоколам UserShablon.MET_FactoryShablonArray(pTip); return(true); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных Protokol из SQL"); MyGlo.Event_Error(ex); return(false); } }
/// <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); } }