Ejemplo n.º 1
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[] curRDGValues = new RDGStruct[m_curRDGValues.Length];
            int         hour         = -1;
            double      val          = -1F;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }

            if ((typeValues == CONN_SETT_TYPE.PBR) ||
                (typeValues == CONN_SETT_TYPE.ADMIN))
            {
                //Получить значения для сохранения
                DataRow [] rowsTECComponent = m_tableValuesResponse.Select(@"GTP_ID='" + allTECComponents[indx].name_future + @"'");
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Length > 0)
                {
                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try
                        {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e, Logging.INDEX_MESSAGE.NOT_SET
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")");

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }
Ejemplo n.º 2
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[] curRDGValues = new RDGStruct[m_curRDGValues.Length];
            int         hour         = -1;
            double      val          = -1F;
            string      name_future  = string.Empty;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }

            if ((typeValues == CONN_SETT_TYPE.PBR) ||
                (typeValues == CONN_SETT_TYPE.ADMIN))
            {
                List <DataRow> rowsTECComponent = null;
                //Получить значения для сохранения
                name_future      = allTECComponents[indx].name_future;
                rowsTECComponent = new List <DataRow>(m_tableValuesResponse.Select(@"GTP_ID='" + name_future + @"'"));
                //Вариант №2 - тестовый
                //foreach (DataRow r in m_tableValuesResponse.Rows)
                //    if (name_future.Equals(r["GTP_ID"]) == true)
                //        rowsTECComponent.Add(r);
                //    else
                //        ;
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Count > 0)
                {
                    // добавление недостающих строк путем копирования крайней
                    if (rowsTECComponent.Count < 24)
                    {
                        // фрагмент кода выполняется при загрузке
                        //while (rowsTECComponent.Count < 24) {
                        //    rowsTECComponent.Add(rowsTECComponent[rowsTECComponent.Count - 1]);

                        //    if (m_tableValuesResponse.Columns.Contains(@"SESSION_INTERVAL") == true)
                        //        rowsTECComponent[rowsTECComponent.Count - 1][@"SESSION_INTERVAL"] = rowsTECComponent.Count - 1;
                        //    else
                        //        ;
                        //}
                    }
                    else
                    {
                        Logging.Logg().Error(string.Format(@"AdminTS_KomDisp::saveCSVValues () - для ГТП(ИД={0}) количество записей={1} ..."
                                                           , name_future, rowsTECComponent.Count)
                                             , Logging.INDEX_MESSAGE.NOT_SET);
                    }

                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")"
                                                     , Logging.INDEX_MESSAGE.NOT_SET);

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }
Ejemplo n.º 3
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[]    curRDGValues     = new RDGStruct[m_curRDGValues.Length];
            int            hour             = -1;
            double         val              = -1F;
            string         name_future      = string.Empty;
            List <DataRow> rowsTECComponent = null;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }
            // проверить был ли определен тип сохраняемых значений
            //  и имеет ли таблица соответствующую типу значений структуру (присутствуют ли в таблице необходимые поля)
            if (((typeValues == CONN_SETT_TYPE.PBR) ||
                 (typeValues == CONN_SETT_TYPE.ADMIN)) &&
                (CheckNameFieldsOfTable(m_tableValuesResponse
                                        , typeValues == CONN_SETT_TYPE.PBR ? new string [] { @"GTP_ID", @"SESSION_INTERVAL", @"REC", @"IS_PER", @"DIVIAT", @"FC" }
                        : typeValues == CONN_SETT_TYPE.ADMIN ? new string [] { @"GTP_ID", @"SESSION_INTERVAL", @"REC", @"IS_PER", @"DIVIAT", @"FC" }
                            : new string [] { @"GTP_ID", @"SESSION_INTERVAL" }) == true))
            {
                //Получить значения для сохранени
                name_future      = allTECComponents[indx].name_future;
                rowsTECComponent = new List <DataRow>(m_tableValuesResponse.Select(@"GTP_ID='" + name_future + @"'"));
                //Вариант №2 - тестовый
                //foreach (DataRow r in m_tableValuesResponse.Rows)
                //    if (name_future.Equals(r["GTP_ID"]) == true)
                //        rowsTECComponent.Add(r);
                //    else
                //        ;
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Count > 0)
                {
                    //!!! должно быть 24 записи (обеспечивается дополнением при загрузке)
                    if (rowsTECComponent.Count < 24)
                    {
                        Logging.Logg().Error(string.Format(@"AdminTS_KomDisp::saveCSVValues () - для ГТП(ИД={0}) количество записей={1} ..."
                                                           , name_future, rowsTECComponent.Count)
                                             , Logging.INDEX_MESSAGE.NOT_SET);
                    }
                    else
                    {
                        ;
                    }

                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")"
                                                     , Logging.INDEX_MESSAGE.NOT_SET);

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }