protected override bool Execute(CodeActivityContext context) { DateTime dt = new DateTime(Year.Get(context), Month.Get(context), 1); try { ID_TypeHierarchy idHierarchy = new ID_TypeHierarchy(); idHierarchy.ID = ID.Get(context); idHierarchy.TypeHierarchy = HierarchyType; SectionIntegralComplexResults result = ARM_Service.GroupTP_GetActConsumptionPower(idHierarchy, GroupTPPowerReportMode, null, TypeOfMeasuring, ExcelAdapterType, dt, 2, ".", IsReadCalculatedValues.Get(context), IncludeAllTI.Get(context), false, null, null, WcfTimeOut.Get(context)); if (!string.IsNullOrEmpty(result.Errors.ToString()) && (result.Document == null || result.Document.Length == 0)) { Error.Set(context, result.Errors.ToString()); } else { SendEmail(context, CompressUtility.DecompressGZip(result.Document)); } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } return(string.IsNullOrEmpty(Error.Get(context))); }
protected override bool Execute(CodeActivityContext context) { List <ID_TypeHierarchy> idList = new List <ID_TypeHierarchy>(); ID_TypeHierarchy idTypeHier = new ID_TypeHierarchy(); idTypeHier.ID = ID.Get(context); idTypeHier.ClosedPeriod_ID = null;// ClosedPeriodID.Get(context); idTypeHier.TypeHierarchy = enumTypeHierarchy.Section; idList.Add(idTypeHier); try { //TODO часовой пояс object[] args = { IsReadCalculatedValues, StartDateTime.Get(context), idList, DataSourceType, null }; TAnalysClosedData res = ARM_Service.ClosedPeriod_AnalysClosedData(args); AnalysResult.Set(context, res.AnalysClosedDataRows); } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } return(string.IsNullOrEmpty(Error.Get(context))); }
public ExtendedXlsFile TestExecuteBalansHierLev0_Valtage_220_330_Full(BalansHierLev0Result HierLev0, TExportExcelAdapterType ExportType, IVisualDataRequestObjectsNames getNameInterface) { Dictionary <ID_TypeHierarchy, string> dictionaryOfNames = HierLev0.DictionaryOfNames; InitData data = new InitData(HierLev0.VoltageClassPoints); InternalData internalData = new InternalData(ExportType); InitBlock initBlock = new InitBlock(data, internalData); Classes.TitleInfo titleData = new Classes.TitleInfo(getNameInterface.GetBalanceNameForHierLev0(HierLev0.BalanceId), HierLev0.DTStart, HierLev0.DTEnd); TitleBlock titleBlock = new TitleBlock(titleData); initBlock.AddBlock(titleBlock); HeaderFooterData headFootData = new HeaderFooterData(HierLev0.VoltageClass, HierLev0.HighLimit); HeaderFooterBlock headerFooter = new HeaderFooterBlock(headFootData, internalData); initBlock.AddBlock(headerFooter); foreach (TIntegral_HierLev0_Values balanceSection in HierLev0.Result_Values) { BalancePartData balData = new BalancePartData(getNameInterface.GetBalanceSectionName(balanceSection.HierLev0Group_Name), HierLev0.BalPartList.Where(x => x.IsUseInGeneralBalance).Select(x => x.Name).Contains(balanceSection.HierLev0Group_Name), HierLev0.BalPartList.Where(x => x.IsRsk).Select(x => x.Name).Contains(balanceSection.HierLev0Group_Name)); BalancePartBlock balPartBlock = new BalancePartBlock(balData, internalData); foreach (KeyValuePair <ID_IsOurSide, TIntegral_PS_ValuesForHierLev0> psBalSect in balanceSection.HierLev0DetailGroupResult) { string psName; TIntegral_PS_ValuesForHierLev0 psBalSectData = psBalSect.Value; ID_IsOurSide side = psBalSect.Key; ID_TypeHierarchy key = new ID_TypeHierarchy(enumTypeHierarchy.Dict_PS, -1); key.TypeHierarchy = side.IsOurSide ? enumTypeHierarchy.Dict_PS : enumTypeHierarchy.Dict_Contr_PS; key.ID = side.ID; if (!dictionaryOfNames.TryGetValue(key, out psName)) { psName = getNameInterface.GetPSName(side.ID, !side.IsOurSide); } PsBlock psBlock = new PsBlock(psName, internalData); foreach (TI_Integral_ValuesForHierLev0 tiPsBalSect in psBalSectData.TI_List) { string tIName = string.Empty; key.TypeHierarchy = tiPsBalSect.TypeHierarchy; key.ID = tiPsBalSect.ID; if (!dictionaryOfNames.TryGetValue(key, out tIName)) { switch (tiPsBalSect.TypeHierarchy) { case enumTypeHierarchy.Dict_PS: tIName = getNameInterface.GetPSName(tiPsBalSect.ID, !side.IsOurSide); break; case enumTypeHierarchy.Info_TI: tIName = getNameInterface.GetTIName(tiPsBalSect.ID, false); break; case enumTypeHierarchy.Info_ContrTI: tIName = getNameInterface.GetTIName(tiPsBalSect.ID, true); break; case enumTypeHierarchy.Info_TP: tIName = getNameInterface.GetTPName(tiPsBalSect.ID); break; } } List <TVALUES_DB> inputValues; List <TVALUES_DB> outputValues; Data.Full.TiData tiData = new Data.Full.TiData(tIName); if (tiPsBalSect.Val_List.TryGetValue(1, out inputValues)) { tiData.InputByVoltages.Add(tiPsBalSect.VoltageClassPoint, inputValues[0]); } if (tiPsBalSect.Val_List.TryGetValue(2, out outputValues)) { tiData.OutputByVoltages.Add(tiPsBalSect.VoltageClassPoint, outputValues[0]); } TiBlock tiBlock = new TiBlock(tiData, internalData); psBlock.AddBlock(tiBlock); } balPartBlock.AddBlock(psBlock); } headerFooter.AddBlock(balPartBlock); } ExtendedXlsFile xls = new ExtendedXlsFile(ExportType); initBlock.Render(xls); return(xls); }
protected override bool Execute(CodeActivityContext context) { Error.Set(context, null); EnumGroupTPPowerReportMode?typecalc = null; if (GroupTPPowerReportMode == GroupTPPowerReportMode.OpenPeriod) { typecalc = EnumGroupTPPowerReportMode.OpenPeriod; } if (GroupTPPowerReportMode == GroupTPPowerReportMode.ClosedCurrPeriod) { typecalc = EnumGroupTPPowerReportMode.ClosedCurrPeriod; } if (GroupTPPowerReportMode == GroupTPPowerReportMode.ClosedNextPeriod) { typecalc = EnumGroupTPPowerReportMode.ClosedNextPeriod; } if (GroupTPPowerReportMode == GroupTPPowerReportMode.ClosedPrevPeriod) { typecalc = EnumGroupTPPowerReportMode.ClosedPrevPeriod; } string userName = UserName;//.Get(context); string userID = null; if (string.IsNullOrEmpty(userName)) { Error.Set(context, "Значение свойства 'Пользователь' не может быть пустым"); return(false); } try { List <UserInfo> UList = ARM_Service.EXPL_Get_All_Users(); foreach (UserInfo u in UList) { if (u.UserName.ToLower(System.Globalization.CultureInfo.InvariantCulture) == userName.ToLower(System.Globalization.CultureInfo.InvariantCulture)) { userID = u.User_ID; break; } } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } if (!string.IsNullOrEmpty(Error.Get(context))) { return(false); } if (string.IsNullOrEmpty(userID)) { Error.Set(context, "Не найден пользователь с именем '" + UserName + "'"); return(false); } List <int> listIDs = ListIDs.Get(context); if (listIDs == null) { Error.Set(context, "Неопределен список идентификаторов"); return(false); } List <ID_TypeHierarchy> idList = new List <ID_TypeHierarchy>(); foreach (int id in listIDs) { ID_TypeHierarchy idTypeHier = new ID_TypeHierarchy(); idTypeHier.ID = id; idTypeHier.TypeHierarchy = TypeIDs; idList.Add(idTypeHier); } MemoryStream doc = null; try { SectionIntegralComplexResults res; if (ReportType == enumReportType.ReportReplacementOfMeters) { //TODO часовой пояс res = ARM_Service.Rep_ReplacementOfAccountingFacilities(idList, StartDateTime.Get(context), EndDateTime.Get(context), ReportType, typecalc, userName, null); } else { //TODO часовой пояс res = ARM_Service.REP_OverflowControl(idList, StartDateTime.Get(context), EndDateTime.Get(context), ReportType, typecalc, userName, null, null, false, 3, ",", enumTimeDiscreteType.DBHours, null); } if (res.Document != null) { res.Document.Position = 0; var ms = CompressUtility.DecompressGZip(res.Document); ms.Position = 0; Document.Set(context, ms); //File.WriteAllBytes(@"C:\12\test_SysRep.xls",ms.ToArray()); } switch (res.AdapterType) { case TExportExcelAdapterType.toXLS: FileExtention.Set(context, "xls"); break; case TExportExcelAdapterType.toXLSx: FileExtention.Set(context, "xlsx"); break; case TExportExcelAdapterType.toHTML: FileExtention.Set(context, "html"); break; case TExportExcelAdapterType.toPDF: FileExtention.Set(context, "pdf"); break; } if (res.Errors != null) { Error.Set(context, res.Errors.ToString()); } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } return(string.IsNullOrEmpty(Error.Get(context))); }
public ExtendedXlsFile TestExecuteBalansHierLev0_Valtage_220_330_Interval(BalansHierLev0Result HierLev0, TExportExcelAdapterType ExportType, IVisualDataRequestObjectsNames getNameInterface) { Dictionary <ID_TypeHierarchy, string> dictionaryOfNames = HierLev0.DictionaryOfNames; InternalData internalData = new InternalData(ExportType, HierLev0.NumbersValues); InitBlock initBlock = new InitBlock(internalData); Classes.TitleInfo titleData = new Classes.TitleInfo(getNameInterface.GetBalanceNameForHierLev0(HierLev0.BalanceId), HierLev0.DTStart, HierLev0.DTEnd); TitleBlock titleBlock = new TitleBlock(titleData); initBlock.AddBlock(titleBlock); List <DateTime> dateTimeListForPeriod = getNameInterface.GetDateTimeListForPeriod(HierLev0.DTStart, HierLev0.DTEnd, HierLev0.DiscreteType, HierLev0.IsSummerOrWinter); List <DateTimePeriod> dateTimePeriods = new List <DateTimePeriod>(); for (int i = 0; i < dateTimeListForPeriod.Count; i += 1) { var dateList = dateTimeListForPeriod.GetRange(i, Math.Min(2, dateTimeListForPeriod.Count - i)); if (dateList.Count > 1) { dateTimePeriods.Add(new DateTimePeriod(dateList[0], dateList[1])); } } dateTimePeriods.Add(new DateTimePeriod(dateTimeListForPeriod.Max(), HierLev0.DTEnd.AddMinutes(30))); HeaderFooterBlock headerFooter = new HeaderFooterBlock(new Data.HeaderFooterData(HierLev0.VoltageClass, dateTimePeriods)); initBlock.AddBlock(headerFooter); foreach (TIntegral_HierLev0_Values balanceSection in HierLev0.Result_Values) { BalansHierLev0.Data.Full.BalancePartData balData = new BalansHierLev0.Data.Full.BalancePartData(getNameInterface.GetBalanceSectionName(balanceSection.HierLev0Group_Name), HierLev0.BalPartList.Where(x => x.IsUseInGeneralBalance).Select(x => x.Name).Contains(balanceSection.HierLev0Group_Name), HierLev0.BalPartList.Where(x => x.IsRsk).Select(x => x.Name).Contains(balanceSection.HierLev0Group_Name)); BalancePartBlock balPartBlock = new BalancePartBlock(balData); foreach (KeyValuePair <ID_IsOurSide, TIntegral_PS_ValuesForHierLev0> psBalSect in balanceSection.HierLev0DetailGroupResult) { string psName; TIntegral_PS_ValuesForHierLev0 psBalSectData = psBalSect.Value; ID_IsOurSide side = psBalSect.Key; ID_TypeHierarchy key = new ID_TypeHierarchy(enumTypeHierarchy.Dict_PS, -1); key.TypeHierarchy = side.IsOurSide ? enumTypeHierarchy.Dict_PS : enumTypeHierarchy.Dict_Contr_PS; key.ID = side.ID; if (!dictionaryOfNames.TryGetValue(key, out psName)) { psName = getNameInterface.GetPSName(side.ID, !side.IsOurSide); } PsBlock psBlock = new PsBlock(psName); foreach (TI_Integral_ValuesForHierLev0 tiPsBalSect in psBalSectData.TI_List) { string tIName = string.Empty; key.TypeHierarchy = tiPsBalSect.TypeHierarchy; key.ID = tiPsBalSect.ID; if (!dictionaryOfNames.TryGetValue(key, out tIName)) { switch (tiPsBalSect.TypeHierarchy) { case enumTypeHierarchy.Dict_PS: tIName = getNameInterface.GetPSName(tiPsBalSect.ID, !side.IsOurSide); break; case enumTypeHierarchy.Info_TI: tIName = getNameInterface.GetTIName(tiPsBalSect.ID, false); break; case enumTypeHierarchy.Info_ContrTI: tIName = getNameInterface.GetTIName(tiPsBalSect.ID, true); break; case enumTypeHierarchy.Info_TP: tIName = getNameInterface.GetTPName(tiPsBalSect.ID); break; } } List <TVALUES_DB> inputValues; List <TVALUES_DB> outputValues; Data.TiData tiData = new Data.TiData(tIName); if (tiPsBalSect.Val_List.TryGetValue(1, out inputValues)) { tiData.InputInterval = inputValues.Select(x => new TVALUES_DB(x.F_FLAG, x.F_VALUE / 1000)).ToList(); } if (tiPsBalSect.Val_List.TryGetValue(2, out outputValues)) { tiData.OutputInterval = outputValues.Select(x => new TVALUES_DB(x.F_FLAG, x.F_VALUE / 1000)).ToList(); } TiBlock tiBlock = new TiBlock(tiData); psBlock.AddBlock(tiBlock); } balPartBlock.AddBlock(psBlock); } headerFooter.AddBlock(balPartBlock); } ExtendedXlsFile xls = new ExtendedXlsFile(ExportType); initBlock.Render(xls); return(xls); }