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); }
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); }
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); }