Exemplo n.º 1
0
            /// <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
                {
                    ;
                }
            }
Exemplo n.º 2
0
                /// <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>();
                }