예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }