/// <summary> /// Добавить значения для экспорта /// </summary> /// <param name="compValues">Значения (админ. + ПБР) для одного из компонентов ТЭЦ</param> /// <param name="date">Дата, за которую получены значения</param> /// <returns>Очередной индекс для запроса значений из БД</returns> public int AddValueToExportRDGValues(RDGStruct[] compValues, DateTime date) { int iRes = -1; if ((date - DateTime.MinValue.Date).Days > 0) { if ((_lisTECComponentIndex.Count > 0) && (!(indxTECComponents < 0)) && (!(_lisTECComponentIndex[0] < 0))) { if (indxTECComponents - _lisTECComponentIndex[0] == 0) { Logging.Logg().Debug(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для [ID={0}, Index={1}, за дату={2}, кол-во={3}] компонента..." , allTECComponents[_lisTECComponentIndex[0]].m_id, _lisTECComponentIndex[0], _lisTECComponentIndex[0], date, compValues.Length) , Logging.INDEX_MESSAGE.NOT_SET); if ((_msExcelIOExportPBRValues.AddTECComponent(allTECComponents[indxTECComponents]) == 0) && (_msExcelIOExportPBRValues.SetDate(date) == true)) { _lisTECComponentIndex.Remove(indxTECComponents); // дубликатов быть не должно (см. добавление элементов) //Console.WriteLine(@"AdminTS_KomDisp::AddValueToExportRDGValues () - обработка элемента=[{0}], остатолось элементов={1}", indxTECComponents, _lisTECComponentIndex.Count); // добавить значения по составному ключу: [DateTime, Index] _msExcelIOExportPBRValues.AddPBRValues(allTECComponents[indxTECComponents].m_id, compValues); // проверить повторно после удаления элемента if (_lisTECComponentIndex.Count > 0) { // очередной индекс компонента для запрооса iRes = _lisTECComponentIndex[0]; } else { // все значения по всем компонентам получены/добавлены Logging.Logg().Debug(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены все значения для всех компонентов...") , Logging.INDEX_MESSAGE.NOT_SET); _msExcelIOExportPBRValues.Run(); } } else { Logging.Logg().Error(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - компонент с индексом [{0}] не может быть добавлен (пред. опреация экспрта не завершена)...") , Logging.INDEX_MESSAGE.NOT_SET); } } else { // текущий индекс и 0-ой элемент массива индексов жолжны совпадать ; } } else { //??? ошибка, т.к. выполнен запрос и получены значения, а индекс компонента не известен Logging.Logg().Error(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для неизвестного компонента...") , Logging.INDEX_MESSAGE.NOT_SET); } } else { // дата для полученных значений неизвестна ; } return(iRes); }
/// <summary> /// Добавить значения для экспорта /// </summary> /// <param name="compValues">Значения (админ. + ПБР) для одного из компонентов ТЭЦ</param> /// <param name="date">Дата, за которую получены значения</param> /// <returns>Очередной индекс для запроса значений из БД</returns> public FormChangeMode.KeyDevice AddValueToExportRDGValues(RDGStruct[] compValues, DateTime date) { FormChangeMode.KeyDevice keyRes = new FormChangeMode.KeyDevice(); if ((date - DateTime.MinValue.Date).Days > 0) { if ((_listTECComponentKey.Count > 0) && (!(CurrentKey.Id < 0)) && (!(_listTECComponentKey [0].Id < 0))) { if (CurrentKey.Id - _listTECComponentKey[0].Id == 0) { //??? ошибка не в этом методе //Logging.Logg().Action(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для [ID={0}, Index={1}, за дату={2}, кол-во={3}] компонента..." // , _listTECComponentKey[0].Id, _listTECComponentKey[0], date, compValues.Length) // , Logging.INDEX_MESSAGE.D_006); actionReport(string.Format("получены значения для [ID={0}, Index={1}, за дату={2}, кол-во={3}] компонента..." , _listTECComponentKey[0].Id, _listTECComponentKey[0], date, compValues.Length)); if ((_msExcelIOExportPBRValues.AddTECComponent(allTECComponents.Find(comp => comp.m_id == CurrentKey.Id)) == 0) && (_msExcelIOExportPBRValues.SetDate(date) == true)) { TECComponentComplete(-1, true); // дубликатов быть не должно (см. добавление элементов) //Console.WriteLine(@"AdminTS_KomDisp::AddValueToExportRDGValues () - обработка элемента=[{0}], остатолось элементов={1}", indxTECComponents, _lisTECComponentIndex.Count); // добавить значения по составному ключу: [DateTime, Index] _msExcelIOExportPBRValues.AddPBRValues(CurrentKey.Id, compValues); keyRes = FirstTECComponentKey; // проверить повторно после удаления элемента if (keyRes == FormChangeMode.KeyDevice.Empty) { // все значения по всем компонентам получены/добавлены Logging.Logg().Action(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены все значения для всех компонентов...") , Logging.INDEX_MESSAGE.NOT_SET); actionReport(string.Format("получены все значения для всех компонентов...")); _msExcelIOExportPBRValues.Run(); // установить штатного признак завершения keyRes.Id = 0; } else { // очередной индекс компонента для запрооса ; } } else { Logging.Logg().Error(string.Format($"AdminTS_KomDisp::AddValueToExportRDGValues () - компонент с ключом [{CurrentKey.ToString ()}] не может быть добавлен (пред. опреация экспорта не завершена)...") , Logging.INDEX_MESSAGE.NOT_SET); // завершить обработку _listTECComponentKey.Clear(); _msExcelIOExportPBRValues.Abort(); // установить признак аварийного завершения keyRes.Id = -1; errorReport("Экспорт ПБР-значений"); } } else { // текущий индекс и 0-ой элемент массива индексов должны совпадать Logging.Logg().Error(string.Format($"AdminTS_KomDisp::AddValueToExportRDGValues () - текущий ключ <{CurrentKey.ToString ()}> и 0-ой <{_listTECComponentKey [0].ToString()}> элемент массива индексов не совпадают...") , Logging.INDEX_MESSAGE.NOT_SET); } } else { //??? ошибка, т.к. выполнен запрос и получены значения, а индекс компонента не известен Logging.Logg().Error(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для неизвестного компонента ключ={0}..." , CurrentKey.ToString()) , Logging.INDEX_MESSAGE.NOT_SET); } } else { // дата для полученных значений неизвестна ; } _eventUnitTestExportPBRValuesRequest?.Invoke(keyRes, date, CurrentKey, _listTECComponentKey); return(keyRes); }