Exemplo n.º 1
0
        /// <summary>
        /// Список компонентов (ТЭЦ, ГТП, ЩУ, ТГ) в ~ от индекса компонента
        /// </summary>
        /// <param name="idListener">Идентификатор установленного соединения с БД концигурации</param>
        /// <param name="mode">Индекс компонента - значение из перечисления 'FormChangeMode.MODE_TECCOMPONENT' ('0' или > '0' означает TEC(GTP, PC, TG), '-1' означает VYVOD)</param>
        /// <param name="bIgnoreTECInUse">Признак использования поля [TEC_LIST].[InUse]</param>
        /// <param name="arTECLimit">Массив-диапазон допустимых идентификаторов ТЭЦ</param>
        /// <param name="bUseData">Признак возможности обращения к данным компонентов собираемого списка</param>
        public List <TEC> InitTEC(FormChangeMode.MODE_TECCOMPONENT mode, bool bIgnoreTECInUse, int [] arTECLimit, bool bUseData) //indx = {GTP или PC}
        {
            //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - вход...");

            ListTEC tecRes = new ListTEC();

            int err = 01;
            // подключиться к бд, инициализировать глобальные переменные, выбрать режим работы
            DataTable list_tec   = null // = DbTSQLInterface.Select(connSett, "SELECT * FROM TEC_LIST"),
            , list_TECComponents = null
            , all_PARAM_DETAIL   = null;
            TEC newTECItem;

            //Использование статической функции
            list_tec = GetListTEC(bIgnoreTECInUse, arTECLimit, out err);
            //??? что значит < 0, mode.Unknown < 0!!!
            if ((!(mode == FormChangeMode.MODE_TECCOMPONENT.VYVOD)) &&
                (!(mode == FormChangeMode.MODE_TECCOMPONENT.Unknown)))
            {
                all_PARAM_DETAIL = getALL_PARAM_TG(0, out err);  // самый новый набор
            }
            else
            {
                all_PARAM_DETAIL = getALL_ParamVyvod(-1, out err); // для всех ТЭЦ
            }
            if (err == 0)
            {
                for (int indx_tec = 0; indx_tec < list_tec.Rows.Count; indx_tec++)
                {
                    //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - Создание объекта ТЭЦ: " + i);

                    //Создание объекта ТЭЦ
                    newTECItem = new TEC(list_tec.Rows[indx_tec], bUseData);
                    tecRes.Add(newTECItem);

                    EventTECListUpdate += newTECItem.PerformUpdate;

                    initTECConnectionSettings(newTECItem, list_tec.Rows[indx_tec]);
                    // получить список компонентов, с учетом типа компонентов по 'indx'
                    list_TECComponents = GetListTECComponent(FormChangeMode.getPrefixMode(mode), Convert.ToInt32(list_tec.Rows[indx_tec]["ID"]), out err);

                    if (err == 0)
                    {
                        //??? что значит < 0, mode.Unknown < 0!!!
                        initTECComponents(newTECItem, mode, list_TECComponents, all_PARAM_DETAIL);
                    }
                    else
                    {
                        ; //Ошибка ???
                    }
                }
            }
            else
            {
                ; //Ошибка получения списка ТЭЦ
            }
            //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - вЫход...");

            return(tecRes);
        }
Exemplo n.º 2
0
        public void InitTEC(FormChangeMode.MODE_TECCOMPONENT mode, /*TYPE_DATABASE_CFG typeCfg, */ HMark markQueries, bool bIgnoreTECInUse, int[] arTECLimit, bool bUseData = false)
        {
            //Logging.Logg().Debug("Admin::InitTEC () - вход...");

            if ((mode == FormChangeMode.MODE_TECCOMPONENT.TEC) ||
                (mode == FormChangeMode.MODE_TECCOMPONENT.ANY))    //??? зачем '.ANY'
            {
                this.m_list_tec = DbTSQLConfigDatabase.DbConfig().InitTEC(bIgnoreTECInUse, arTECLimit, bUseData) as DbTSQLConfigDatabase.ListTEC;
            }
            else
            {
                this.m_list_tec = DbTSQLConfigDatabase.DbConfig().InitTEC(mode, bIgnoreTECInUse, arTECLimit, bUseData) as DbTSQLConfigDatabase.ListTEC;
            }

            initQueries(markQueries);
            initTECComponents();

            try {
                CurrentKey = new FormChangeMode.KeyDevice()
                {
                    Id = allTECComponents.First(comp => comp.Mode == mode).m_id, Mode = mode
                };
            } catch (Exception e) {
                Logging.Logg().Exception(e, $"HADmin::InitTEC (mode={mode}) - не найден 1-ый элемент для инициализации списка", Logging.INDEX_MESSAGE.NOT_SET);
            }
        }
Exemplo n.º 3
0
        public void InitTEC(int idListener, FormChangeMode.MODE_TECCOMPONENT mode, HMark markQueries)
        {
            //Logging.Logg().Debug("Admin::InitTEC () - вход...");

            //m_ignore_connsett_data = ! bUseData;

            if (!(idListener < 0))
            {
                if (mode == FormChangeMode.MODE_TECCOMPONENT.UNKNOWN)
                {
                    this.m_list_tec = new InitTEC(idListener, false).tec;
                }
                else
                {
                    this.m_list_tec = new InitTEC(idListener, (short)mode, false).tec;
                }
            }

            else
            {
                this.m_list_tec = new InitTECBase.ListTEC();
            }

            initQueries(markQueries);
            initTEC();
        }
Exemplo n.º 4
0
        public void InitTEC(int idListener, FormChangeMode.MODE_TECCOMPONENT mode, /*TYPE_DATABASE_CFG typeCfg, */ HMark markQueries, bool bIgnoreTECInUse, int [] arTECLimit)
        {
            //Logging.Logg().Debug("Admin::InitTEC () - вход...");

            //m_ignore_connsett_data = ! bUseData;

            if (!(idListener < 0))
            {
                if (mode == FormChangeMode.MODE_TECCOMPONENT.UNKNOWN)
                {
                    this.m_list_tec = new InitTEC_200(idListener, bIgnoreTECInUse, arTECLimit, false).tec;
                }
                else
                {
                    this.m_list_tec = new InitTEC_200(idListener, (short)mode, bIgnoreTECInUse, arTECLimit, false).tec;
                }
            }
            else
            {
                this.m_list_tec = new InitTECBase.ListTEC();
            }

            initQueries(markQueries);
            initTEC();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Заполнение ComboBox значениями-наименованиями
        /// </summary>
        /// <param name="mode">Переменная типа отображаемых значений</param>
        public void InitializeComboBoxTecComponent(FormChangeMode.MODE_TECCOMPONENT mode, bool bWithNameTECOwner, bool bLimitLK)
        {
            comboBoxTecComponent.Items.Clear();

            List <FormChangeMode.KeyDevice> listKey;
            List <object> listItems = new List <object> ();

            listKey = m_admin.GetListKeyTECComponent(mode, bLimitLK);
            listKey.ForEach(key => listItems.Add(new ComboBoxItem()
            {
                Tag = key, Text = m_admin.GetNameTECComponent(key, bWithNameTECOwner)
            }));

            if (listItems.Count > 0)
            {
                comboBoxTecComponent.Items.AddRange(listItems.ToArray() as object []);

                if (comboBoxTecComponent.Items.Count > 0)
                {
                    m_admin.CurrentKey = InitItemKey;
                    comboBoxTecComponent.SelectedIndex = 0;
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }
        }
Exemplo n.º 6
0
        public FormChangeMode.MODE_TECCOMPONENT modeTECComponent(int indx)
        {
            FormChangeMode.MODE_TECCOMPONENT modeRes = FormChangeMode.MODE_TECCOMPONENT.UNKNOWN;

            if ((allTECComponents[indx].m_id > 0) && (allTECComponents[indx].m_id < 100))
            {
                modeRes = FormChangeMode.MODE_TECCOMPONENT.TEC;
            }
            else
            if ((allTECComponents[indx].m_id > 100) && (allTECComponents[indx].m_id < 500))
            {
                modeRes = FormChangeMode.MODE_TECCOMPONENT.GTP;
            }
            else
            if ((allTECComponents[indx].m_id > 500) && (allTECComponents[indx].m_id < 1000))
            {
                modeRes = FormChangeMode.MODE_TECCOMPONENT.PC;
            }
            else
            if ((allTECComponents[indx].m_id > 1000) && (allTECComponents[indx].m_id < 10000))
            {
                modeRes = FormChangeMode.MODE_TECCOMPONENT.TG;
            }
            else
            {
                ;
            }

            return(modeRes);
        }
Exemplo n.º 7
0
        public virtual void InitializeComboBoxTecComponent(FormChangeMode.MODE_TECCOMPONENT mode)
        {
            m_listTECComponentIndex = m_admin.GetListIndexTECComponent(mode);

            //m_admin.m_typeFields = AdminTS.TYPE_FIELDS.DYNAMIC;

            comboBoxTecComponent.Items.Clear();
        }
Exemplo n.º 8
0
        /// <summary>
        /// Получение списка компонентов ТЭЦ в зависимости от типа компонента
        /// </summary>
        /// <param name="mode">Модификатор типа компонентов</param>
        /// <param name="bLimitLK">Признак учета лимита ЛК при формировании списка</param>
        /// <returns>Возвращает список ключей, по которым возможен поиск компонента</returns>
        public virtual List <FormChangeMode.KeyDevice> GetListKeyTECComponent(FormChangeMode.MODE_TECCOMPONENT mode, bool bLimitLK)
        {
            List <FormChangeMode.KeyDevice> listRes = new List <FormChangeMode.KeyDevice> ();

            int iLimitIdTec = bLimitLK == true ? (int)TECComponent.ID.LK : (int)TECComponent.ID.GTP;

            switch (mode)
            {
            case FormChangeMode.MODE_TECCOMPONENT.TEC:
                foreach (TEC tec in m_list_tec)
                {
                    if (!(tec.m_id > iLimitIdTec))
                    {
                        listRes.Add(new FormChangeMode.KeyDevice()
                        {
                            Id = tec.m_id, Mode = mode
                        });
                    }
                    else
                    {
                        ;
                    }
                }
                break;

            case FormChangeMode.MODE_TECCOMPONENT.GTP:
            case FormChangeMode.MODE_TECCOMPONENT.PC:
            case FormChangeMode.MODE_TECCOMPONENT.TG:
                foreach (TECComponent comp in allTECComponents)
                {
                    if ((!(comp.tec.m_id > iLimitIdTec)) &&
                        (mode == comp.Mode))
                    {
                        listRes.Add(new FormChangeMode.KeyDevice()
                        {
                            Id = comp.m_id, Mode = mode
                        });
                    }
                    else
                    {
                        ;
                    }
                }
                break;

            default:
                break;
            }

            return(listRes);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Заполнение ComboBox значениями ГТП
        /// </summary>
        /// <param name="mode">Переменная типа отображаемых значений</param>
        public override void InitializeComboBoxTecComponent(FormChangeMode.MODE_TECCOMPONENT mode)
        {
            base.InitializeComboBoxTecComponent(mode);

            for (int i = 0; i < m_listTECComponentIndex.Count; i++)
                comboBoxTecComponent.Items.Add(m_admin.allTECComponents[m_listTECComponentIndex[i]].tec.name_shr + " - " + m_admin.GetNameTECComponent(m_listTECComponentIndex[i]));

            if (comboBoxTecComponent.Items.Count > 0)
            {
                m_admin.indxTECComponents = m_listTECComponentIndex[0];
                comboBoxTecComponent.SelectedIndex = 0;
            }
            else ;
        }
Exemplo n.º 10
0
        public void InitTEC(int idListener, FormChangeMode.MODE_TECCOMPONENT mode, TYPE_DATABASE_CFG typeCfg, HMark markQueries, bool bIgnoreTECInUse)
        {
            //Logging.Logg().Debug("Admin::InitTEC () - вход...");

            //m_ignore_connsett_data = ! bUseData;

            if (!(idListener < 0))
            {
                if (mode == FormChangeMode.MODE_TECCOMPONENT.UNKNOWN)
                {
                    switch (typeCfg)
                    {
                    case TYPE_DATABASE_CFG.CFG_190:
                        this.m_list_tec = new InitTEC_190(idListener, bIgnoreTECInUse, false).tec;
                        break;

                    case TYPE_DATABASE_CFG.CFG_200:
                        this.m_list_tec = new InitTEC_200(idListener, bIgnoreTECInUse, false).tec;
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    switch (typeCfg)
                    {
                    case TYPE_DATABASE_CFG.CFG_190:
                        this.m_list_tec = new InitTEC_190(idListener, (short)mode, bIgnoreTECInUse, false).tec;
                        break;

                    case TYPE_DATABASE_CFG.CFG_200:
                        this.m_list_tec = new InitTEC_200(idListener, (short)mode, bIgnoreTECInUse, false).tec;
                        break;

                    default:
                        break;
                    }
                }
            }
            else
            {
                this.m_list_tec = new InitTECBase.ListTEC();
            }

            initQueries(markQueries);
            initTEC();
        }
Exemplo n.º 11
0
        public void InitTEC(FormChangeMode.MODE_TECCOMPONENT mode, /*TYPE_DATABASE_CFG typeCfg, */ HMark markQueries, bool bIgnoreTECInUse, int[] arTECLimit, bool bUseData = false)
        {
            //Logging.Logg().Debug("Admin::InitTEC () - вход...");

            if (mode == FormChangeMode.MODE_TECCOMPONENT.ANY)
            {
                this.m_list_tec = DbTSQLConfigDatabase.DbConfig().InitTEC(bIgnoreTECInUse, arTECLimit, bUseData) as DbTSQLConfigDatabase.ListTEC;
            }
            else
            {
                this.m_list_tec = DbTSQLConfigDatabase.DbConfig().InitTEC(mode, bIgnoreTECInUse, arTECLimit, bUseData) as DbTSQLConfigDatabase.ListTEC;
            }

            initQueries(markQueries);
            initTECComponents();
        }
Exemplo n.º 12
0
        private void initTECComponents(TEC tec, FormChangeMode.MODE_TECCOMPONENT mode, DataTable list_TECComponents, DataTable all_PARAM_Detail)
        {
            int id_comp = -1
            , indx_comp = -1;
            TECComponent newTECComp;

            for (indx_comp = 0; indx_comp < list_TECComponents.Rows.Count; indx_comp++)
            {
                newTECComp = new TECComponent(tec, list_TECComponents.Rows [indx_comp]);
                id_comp    = newTECComp.m_id;
                tec.AddTECComponent(newTECComp);
                if (!(mode < 0)) // инициализация "обычных" компонентов ТЭЦ
                {
                    tec.InitTG(id_comp, all_PARAM_Detail.Select($@"ID_{FormChangeMode.getPrefixMode (mode)}={id_comp}"));
                }
                else
                {
                    tec.InitParamVyvod(newTECComp, all_PARAM_Detail.Select($"ID_{FormChangeMode.getPrefixMode (mode)}={id_comp}"));
                }
            }
        }
Exemplo n.º 13
0
        public PanelAdmin(FormChangeMode.MODE_TECCOMPONENT mode, HMark markQueries, int [] arTECLimit)
            : base(MODE_UPDATE_VALUES.ACTION, FormMain.formGraphicsSettings.FontColor, FormMain.formGraphicsSettings.BackgroundColor)
        {
            createAdmin();

            try { m_admin.InitTEC(mode, markQueries, false, arTECLimit); }
            catch (Exception e)
            {
                Logging.Logg().Exception(e, "PanelAdmin::Initialize () - m_admin.InitTEC ()...", Logging.INDEX_MESSAGE.NOT_SET);
            }

            if (!(m_admin.m_list_tec.Count > 0))
            {
                Logging.Logg().Error(@"PanelAdmin::PanelAdmin () - список ТЭЦ пуст...", Logging.INDEX_MESSAGE.NOT_SET);
            }
            else
            {
                ;
            }

            initialize();
        }
Exemplo n.º 14
0
        public override void InitializeComboBoxTecComponent(FormChangeMode.MODE_TECCOMPONENT mode)
        {
            base.InitializeComboBoxTecComponent(mode);

            if (m_listTECComponentIndex.Count > 0)
            {
                comboBoxTecComponent.Items.AddRange(((AdminTS_TG)m_admin).GetListNameTEC());

                if (comboBoxTecComponent.Items.Count > 0)
                {
                    m_admin.indxTECComponents          = m_listTECComponentIndex[0];
                    comboBoxTecComponent.SelectedIndex = 0;
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }
        }
Exemplo n.º 15
0
        public FormChangeMode.MODE_TECCOMPONENT modeTECComponent(int indx)
        {
            FormChangeMode.MODE_TECCOMPONENT modeRes = FormChangeMode.MODE_TECCOMPONENT.ANY;
            ////Вариант №1
            //if ((allTECComponents[indx].m_id > 0) && (allTECComponents[indx].m_id < 100))
            //    //???
            //    modeRes = FormChangeMode.MODE_TECCOMPONENT.TEC;
            //else
            //    if (allTECComponents[indx].IsGTP == true)
            //        modeRes = FormChangeMode.MODE_TECCOMPONENT.GTP;
            //    else
            //        if (allTECComponents[indx].IsPC == true)
            //            modeRes = FormChangeMode.MODE_TECCOMPONENT.PC;
            //        else
            //            if (allTECComponents[indx].IsTG == true)
            //                modeRes = FormChangeMode.MODE_TECCOMPONENT.TG;
            //            else
            //                ;
            //Вариант №2
            modeRes = TECComponent.Mode(allTECComponents[indx].m_id);

            return(modeRes);
        }
Exemplo n.º 16
0
        protected override void timerService_Tick(object sender, EventArgs e)
        {
            FormChangeMode.MODE_TECCOMPONENT mode = FormChangeMode.MODE_TECCOMPONENT.GTP;

            switch (handlerCmd.ModeMashine)
            {
            case MODE_MASHINE.SERVICE_ON_EVENT:
                // остановить таймер; это первый  вызов (можно обрабытывать также в 'timer_Start')
                stopTimerService();

                FillComboBoxTECComponent(mode, true);
                CT = new ComponentTesting(comboBoxTECComponent.Items.Count);

                setDatetimePicker(DateTime.Now);

                m_arAdmin [(int)CONN_SETT_TYPE.SOURCE].Activate(true);


                if ((handlerCmd.DebugTurn == true) &&
                    (handlerCmd.ModeMashine == MODE_MASHINE.SERVICE_ON_EVENT))
                {
                    // отладка переопубликации плана
                    (m_arAdmin [(int)CONN_SETT_TYPE.SOURCE] as AdminMC).DebugEventReloadPlanValues();
                }
                else
                {
                    ;
                }
                // обязательный запрос актуального плана для всех подразделений
                (m_arAdmin [(int)CONN_SETT_TYPE.SOURCE] as AdminMC).ToDateRequest(ASUTP.Core.HDateTime.ToMoscowTimeZone().Date);
                break;

            default:
                base.timerService_Tick(sender, e);
                break;
            }
        }
Exemplo n.º 17
0
        ///// <summary>
        ///// Список ВСЕХ компонентов (ТЭЦ, ГТП, ЩУ, ТГ)
        ///// </summary>
        ///// <param name="connSett">Параметры соединения с БД концигурации</param>
        ///// <param name="bIgnoreTECInUse">Признак использования поля [TEC_LIST].[InUse]</param>
        ///// <param name="arTECLimit">Массив-диапазон допустимых идентификаторов ТЭЦ</param>
        ///// <param name="bUseData">Признак возможности обращения к данным компонентов собираемого списка</param>
        //public List<TEC> InitTEC (ConnectionSettings connSett, bool bIgnoreTECInUse, int [] arTECLimit, bool bUseData)
        //{
        //    SetConnectionSettings (connSett);

        //    return InitTEC (bIgnoreTECInUse, arTECLimit, bUseData);
        //}

        /// <summary>
        /// Список ВСЕХ компонентов (ТЭЦ, ГТП, ЩУ, ТГ)
        /// </summary>
        /// <param name="bIgnoreTECInUse">Признак использования поля [TEC_LIST].[InUse]</param>
        /// <param name="arTECLimit">Массив-диапазон допустимых идентификаторов ТЭЦ</param>
        /// <param name="bUseData">Признак возможности обращения к данным компонентов собираемого списка</param>
        public List <TEC> InitTEC(bool bIgnoreTECInUse, int [] arTECLimit, bool bUseData)
        {
            //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - вход...");

            ListTEC tecRes;

#if MODE_STATIC_CONNECTION_LEAVING
            ModeStaticConnectionLeave = ModeStaticConnectionLeaving.Yes;
#endif
            int err        = -1;
            TEC newTECItem = null;

            tecRes = new ListTEC();
            //if (Equals(_tec, null) == true)
            //    _tec = new ListTEC ();
            //else {
            //    return CopyTEC;
            //}

            int indx = -1
                       //, indx_tec = -1
            ;
            string strLog = string.Empty;
            // подключиться к бд, инициализировать глобальные переменные, выбрать режим работы
            DataTable list_tec   = null // = DbTSQLInterface.Select(connSett, "SELECT * FROM TEC_LIST"),
            , list_TECComponents = null
            , list_lowPointDev   = null
            , all_PARAM_DETAIL   = null;   // ТГ не аналог "вывода". "Вывод" аналог ГТП(ЩУ), Параметр "вывода" аналог ТГ.

            try
            {
                //Получить список ТЭЦ, используя статическую функцию
                list_tec = GetListTEC(bIgnoreTECInUse, arTECLimit, out err);

                if (err == 0)
                {
                    for (int i = 0; i < list_tec.Rows.Count; i++)
                    {
                        //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - list_tec.Rows[i][\"ID\"] = " + list_tec.Rows[i]["ID"]);

                        if ((HStatisticUsers.allTEC == 0) || (HStatisticUsers.allTEC == Convert.ToInt32(list_tec.Rows[i]["ID"]))
                            /*|| (HStatisticUsers.RoleIsDisp == true)*/)
                        {
                            //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - tec.Count = " + tec.Count);

                            //if ((HAdmin.DEBUG_ID_TEC == -1) || (HAdmin.DEBUG_ID_TEC == Convert.ToInt32 (list_tec.Rows[i]["ID"]))) {
                            //Создание объекта ТЭЦ
                            newTECItem = new TEC(list_tec.Rows[i], bUseData);
                            tecRes.Add(newTECItem);
                            //indx_tec = tec.Count - 1;

                            EventTECListUpdate += newTECItem /*tec[indx_tec]*/.PerformUpdate;

                            indx = -1;
                            initTECConnectionSettings(newTECItem, list_tec.Rows[i]);
                            // получить перечень ТГ со всеми значениями всех свойств
                            all_PARAM_DETAIL = getALL_PARAM_TG(0, out err);

                            if (err == 0)
                            {
                                #region Добавить ТГ для ТЭЦ
                                try
                                {
                                    list_lowPointDev = getListTG(newTECItem.m_id, out err);

                                    if (err == 0)
                                    {
                                        for (int k = 0; k < list_lowPointDev.Rows.Count; k++)
                                        {
                                            newTECItem /*tec[indx_tec]*/.list_TECComponents.Add(new TECComponent(newTECItem /*tec[indx_tec]*/, list_lowPointDev.Rows[k]));
                                            indx = newTECItem /*tec[indx_tec]*/.list_TECComponents.Count - 1;

                                            try {
                                                newTECItem /*tec[indx_tec]*/.list_TECComponents[indx].m_listLowPointDev.Add(
                                                    new TG(list_lowPointDev.Rows[k]
                                                           , all_PARAM_DETAIL.Select(@"ID_TG=" + newTECItem /*tec[indx_tec]*/.list_TECComponents[indx].m_id)[0])
                                                    );
                                            } catch (Exception e) {
                                                Logging.Logg().Exception(e, @"InitTEC_200.ctor () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ; //Ошибка получения списка ТГ
                                    }
                                } catch (Exception e) {
                                    Logging.Logg().Exception(e, @"InitTEC_200.ctor () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                                }
                                #endregion

                                #region Добавить компоненты ТЭЦ (ГТП, ЩУ)
                                for (FormChangeMode.MODE_TECCOMPONENT c = FormChangeMode.MODE_TECCOMPONENT.GTP; !(c > FormChangeMode.MODE_TECCOMPONENT.PC); c++)
                                {
                                    list_TECComponents = GetListTECComponent(FormChangeMode.getPrefixMode(c), newTECItem.m_id, out err);

                                    //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - list_TECComponents.Count = " + list_TECComponents.Rows.Count);

                                    if (err == 0)
                                    {
                                        try
                                        {
                                            for (int j = 0; j < list_TECComponents.Rows.Count; j++)
                                            {
                                                //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - ...tec[indx_tec].list_TECComponents.Add(new TECComponent...");

                                                newTECItem /*tec[indx_tec]*/.list_TECComponents.Add(new TECComponent(newTECItem /*tec[indx_tec]*/, list_TECComponents.Rows[j]));
                                                indx = newTECItem /*tec[indx_tec]*/.list_TECComponents.Count - 1;

                                                newTECItem /*tec[indx_tec]*/.InitTG(indx
                                                                                    , all_PARAM_DETAIL.Select(@"ID_" + FormChangeMode.getPrefixMode(c) + @"=" + newTECItem /*tec[indx_tec]*/.list_TECComponents[indx].m_id));
                                            }
                                        }
                                        catch (Exception e)
                                        {
                                            Logging.Logg().Exception(e, "InitTEC::InitTEC (3 параметра) - ...for (int j = 0; j < list_TECComponents.Rows.Count; j++)...", Logging.INDEX_MESSAGE.NOT_SET);
                                        }
                                    }
                                    else
                                    {
                                        ; //Ошибка при получении списка компонентов
                                    }
                                }
                                #endregion
                            }
                            else
                            {
                                ; // ошибка при получении параметров ТГ
                            }
                            // получить перечень параметров выводов со всеми значениями всех свойств
                            all_PARAM_DETAIL = getALL_ParamVyvod(-1, out err);

                            if (err == 0)
                            {// ВАЖНО! первоначально добавляются компоненты нижнего уровня
                                #region Добавить параметры ВЫВОДов для ТЭЦ
                                list_lowPointDev = getALL_ParamVyvod(newTECItem.m_id, out err);

                                if (err == 0)
                                {
                                    for (int k = 0; k < list_lowPointDev.Rows.Count; k++)
                                    {
                                        newTECItem /*tec[indx_tec]*/.list_TECComponents.Add(new TECComponent(newTECItem /*tec[indx_tec]*/, list_lowPointDev.Rows[k]));
                                        indx = newTECItem /*tec[indx_tec]*/.list_TECComponents.Count - 1;

                                        newTECItem /*tec[indx_tec]*/.list_TECComponents[indx].m_listLowPointDev.Add(new Vyvod.ParamVyvod(all_PARAM_DETAIL.Select($"ID={newTECItem/*tec[indx_tec]*/.list_TECComponents[indx].m_id}") [0]));
                                    }
                                }
                                else
                                {
                                    ; //Ошибка получения списка параметров ВЫВОДов
                                }
                                #endregion

                                #region Добавить компоненты ТЭЦ (ВЫВОДы)
                                list_TECComponents = GetListTECComponent(FormChangeMode.getPrefixMode(FormChangeMode.MODE_TECCOMPONENT.Unknown), newTECItem.m_id, out err);

                                if (err == 0)
                                {
                                    foreach (DataRow r in list_TECComponents.Rows)
                                    {
                                        newTECItem /*tec[indx_tec]*/.list_TECComponents.Add(new TECComponent(newTECItem /*tec[indx_tec]*/, r));
                                        indx = newTECItem /*tec[indx_tec]*/.list_TECComponents.Count - 1;

                                        //???
                                        newTECItem /*tec[indx_tec]*/.InitParamVyvod(-1, all_PARAM_DETAIL.Select($"ID_{FormChangeMode.getPrefixMode(FormChangeMode.MODE_TECCOMPONENT.Unknown)}={newTECItem/*tec[indx_tec]*/.list_TECComponents[indx].m_id}"));
                                    }
                                }
                                else
                                {
                                    ; // ошибка получения перечня выводов
                                }
                                #endregion
                            }
                            else
                            {
                                ; // ошибка получения параметров выводов
                            }
                            //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - list_TG = Ok");
                        }
                        else
                        {
                            ;
                        }
                    } // for i
                }
                else
                {
                    ; //Ошибка получения списка ТЭЦ
                }
            }
            catch (Exception e) {
                Logging.Logg().Exception(e, "Ошибка получения параметров для всех ТГ", Logging.INDEX_MESSAGE.NOT_SET);
            }
#if MODE_STATIC_CONNECTION_LEAVING
            ModeStaticConnectionLeave = ModeStaticConnectionLeaving.No;
#endif
            //Logging.Logg().Debug("InitTEC::InitTEC (3 параметра) - вЫход...");

            return(tecRes);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Список компонентов (ТЭЦ, ГТП, ЩУ, ТГ) в ~ от индекса компонента
        /// </summary>
        /// <param name="idListener">Идентификатор установленного соединения с БД концигурации</param>
        /// <param name="indx">Индекс компонента - значение из перечисления 'FormChangeMode.MODE_TECCOMPONENT' ('0' или > '0' означает TEC(GTP, PC, TG), '-1' означает VYVOD)</param>
        /// <param name="bIgnoreTECInUse">Признак использования поля [TEC_LIST].[InUse]</param>
        /// <param name="arTECLimit">Массив-диапазон допустимых идентификаторов ТЭЦ</param>
        /// <param name="bUseData">Признак возможности обращения к данным компонентов собираемого списка</param>
        public List <TEC> InitTEC(FormChangeMode.MODE_TECCOMPONENT indx, bool bIgnoreTECInUse, int [] arTECLimit, bool bUseData) //indx = {GTP или PC}
        {
            //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - вход...");

            ListTEC tecRes = new ListTEC();

            int err     = 0
            , id_comp   = -1
            , indx_comp = -1;
            // подключиться к бд, инициализировать глобальные переменные, выбрать режим работы
            DataTable list_tec   = null // = DbTSQLInterface.Select(connSett, "SELECT * FROM TEC_LIST"),
            , list_TECComponents = null
            , all_PARAM_DETAIL   = null;

            //Использование статической функции
            list_tec = GetListTEC(bIgnoreTECInUse, arTECLimit, out err);

            if (!(indx < 0))
            {
                all_PARAM_DETAIL = getALL_PARAM_TG(0, out err);  // самый новый набор
            }
            else
            {
                all_PARAM_DETAIL = getALL_ParamVyvod(-1, out err); // для всех ТЭЦ
            }
            if (err == 0)
            {
                for (int i = 0; i < list_tec.Rows.Count; i++)
                {
                    //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - Создание объекта ТЭЦ: " + i);

                    //if ((HAdmin.DEBUG_ID_TEC == -1) || (HAdmin.DEBUG_ID_TEC == Convert.ToInt32 (list_tec.Rows[i]["ID"]))) {

                    //Создание объекта ТЭЦ
                    tecRes.Add(new TEC(list_tec.Rows[i], bUseData));

                    EventTECListUpdate += tecRes[i].PerformUpdate;

                    initTECConnectionSettings(tecRes [i], list_tec.Rows[i]);
                    // получить список компонентов, с учетом типа компонентов по 'indx'
                    list_TECComponents = GetListTECComponent(FormChangeMode.getPrefixMode(indx), Convert.ToInt32(list_tec.Rows[i]["ID"]), out err);

                    if (err == 0)
                    {
                        if (!(indx < 0))
                        {    // инициализация "обычных" компонентов ТЭЦ
                            for (indx_comp = 0; indx_comp < list_TECComponents.Rows.Count; indx_comp++)
                            {
                                id_comp = Convert.ToInt32(list_TECComponents.Rows[indx_comp][@"ID"]);
                                tecRes[i].AddTECComponent(list_TECComponents.Rows[indx_comp]);
                                tecRes[i].InitTG(indx_comp, all_PARAM_DETAIL.Select(@"ID_" + FormChangeMode.getPrefixMode(indx) + @"=" + id_comp));
                            }
                        }
                        else
                        {    // инициализация "необычных компонентов" - ВЫВОДов
                            for (indx_comp = 0; indx_comp < list_TECComponents.Rows.Count; indx_comp++)
                            {
                                id_comp = Convert.ToInt32(list_TECComponents.Rows[indx_comp][@"ID"]);
                                tecRes[i].AddTECComponent(list_TECComponents.Rows[indx_comp]);
                                tecRes[i].InitParamVyvod(-1, all_PARAM_DETAIL.Select($"ID_{FormChangeMode.getPrefixMode(indx)}={id_comp}"));
                            }
                        }
                    }
                    else
                    {
                        ;     //Ошибка ???
                    }
                }
            }
            else
            {
                ; //Ошибка получения списка ТЭЦ
            }
            //Logging.Logg().Debug("InitTEC::InitTEC (4 параметра) - вЫход...");

            return(tecRes);
        }