/// <summary> /// Конструктор основной (без параметров) /// </summary> public HDataSource() { int err = -1; _filterListTEC = new int[] { 0, 10 }; ConnectionSettings connSett = new ConnectionSettings(InitTECBase.getConnSettingsOfIdSource(ListenerId, FormMainBase.s_iMainSourceData, -1, out err).Rows[0], -1); m_connSett = new ConnectionSettings[2];//??? why number m_connSett[(int)CONN_SETT_TYPE.LIST_SOURCE] = connSett; m_connSett[(int)CONN_SETT_TYPE.CONFIG_DB] = FormMain.s_listFormConnectionSettings[(int)CONN_SETT_TYPE.CONFIG_DB].getConnSett(); m_connSett[(int)CONN_SETT_TYPE.CONFIG_DB].id = ConnectionSettings.UN_ENUMERABLE_ID - 6; //??? разбор err if (err < 0) { throw new Exception(@"PanelStatisticDiagnostic::HDataSource () - ctor () - ..."); } else { ; } }
/// <summary> /// Конструктор - основной (с аргументами) /// </summary> /// <param name="iListenerConfigDbId">Идентификатор установленного соединения с БД конфигурации</param> /// <param name="listTEC">Список ТЭЦ</param> public HandlerDbSignalValue(int iListenerConfigDbId, IEnumerable<TEC> listTEC, IEnumerable<CONN_SETT_TYPE>types) : base() { int err = -1 , id_tec = -1 , id_source = -1; DbConnection dbConn; _key._current_type = CONN_SETT_TYPE.UNKNOWN; _key._current_id_tec = -1; m_dictConnSett = new Dictionary<int, Dictionary<CONN_SETT_TYPE, ConnectionSettings>>(); // в ~ от списка ТЭЦ инициализация словаря с параметрами соединения с БД dbConn = DbSources.Sources().GetConnection(iListenerConfigDbId, out err); if (err == 0) foreach (TEC tec in listTEC) { id_tec = tec.m_id; if (m_dictConnSett.ContainsKey(id_tec) == false) m_dictConnSett.Add(id_tec, new Dictionary<CONN_SETT_TYPE, ConnectionSettings>()); else ; foreach (CONN_SETT_TYPE type in types) { id_source = id_tec * 10 + (type == CONN_SETT_TYPE.DATA_AISKUE ? 1 : type == CONN_SETT_TYPE.DATA_SOTIASSO ? 2 : -1); //??? "-1" - ошибка if (m_dictConnSett[id_tec].ContainsKey(type) == false) { m_dictConnSett[id_tec].Add(type , new ConnectionSettings(InitTECBase.getConnSettingsOfIdSource(iListenerConfigDbId, id_source, -1, out err)?.Rows[0], -1)); if (!(err == 0)) { Logging.Logg().Error(string.Format(@"HandlerDbSignalValue::ctor () - ошибка инициализации источника данных {0} для ТЭЦ.ID={1}, идентификатор источника данных={2}..." , type, tec.m_id, id_source) , Logging.INDEX_MESSAGE.NOT_SET); err = 0; } else ; } else ; } } else throw new Exception(string.Format(@"HandlerDbSignalValue::ctor () - ошибка при получения объекта с соединением с БД конфигурации по идентификатору в аргументе...")); //// на этапе отладки (без БД конфигурации) //m_dictConnSett = new Dictionary<CONN_SETT_TYPE, Dictionary<int, ConnectionSettings>> { // { CONN_SETT_TYPE.DATA_AISKUE, new Dictionary<int, ConnectionSettings>() { // { 1, new ConnectionSettings() } // , { 2, new ConnectionSettings() } // , { 3, new ConnectionSettings() } // , { 4, new ConnectionSettings() } // , { 5, new ConnectionSettings() } // } // } // , { CONN_SETT_TYPE.DATA_SOTIASSO, new Dictionary<int, ConnectionSettings>() { // { 1, new ConnectionSettings() } // , { 2, new ConnectionSettings() } // , { 3, new ConnectionSettings() } // , { 4, new ConnectionSettings() } // , { 5, new ConnectionSettings() } // } // } //}; m_arSyncStateCheckResponse = new AutoResetEvent[(int)INDEX_SYNC_STATECHECKRESPONSE.COUNT_INDEX_SYNC_STATECHECKRESPONSE] { new AutoResetEvent (false) , new AutoResetEvent (false) , new AutoResetEvent (false) }; request_handlers = new Dictionary<StatesMachine, Func<string>>() { { StatesMachine.LIST_SIGNAL, getListSignalRequest }, { StatesMachine.VALUES, getValuesRequest } }; response_handlers = new Dictionary<StatesMachine, Func<DataTable, bool>>() { { StatesMachine.LIST_SIGNAL, getListSignalResponse }, { StatesMachine.VALUES, getValuesResponse } }; Values = new VALUES() { serverTime = DateTime.MinValue, m_valuesHours = new List<VALUE>() }; _signals = new List<SIGNAL>(); }