示例#1
0
        protected override bool Execute(CodeActivityContext context)
        {
            int pId = PsId.Get(context);

            try
            {
                //TODO часовой пояс
                var res = ARM_Service.Monit_GetStatisticInformationByPs(pId,
                                                                        StartDateTime.Get(context),
                                                                        EndDateTime.Get(context),
                                                                        null, TIType.Get(context));

                StatisticInfo.Set(context, res);
            }
            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)
        {
            try
            {
                var res = ARM_Service.BL_GetFreeHierarchyBalanceResult(BalanceFreeHierarchyUNs.Get(context),
                                                                       StartDateTime.Get(context),
                                                                       EndDateTime.Get(context),
                                                                       TimeZoneId, TExportExcelAdapterType.toXLSx, false,
                                                                       DiscreteType, UnitDigit, false, UnitDigit, false, false, 0, 0, false, false, false);

                if (res != null && res.CalculatedValues != null)
                {
                    Balances.Set(context, res.CalculatedValues.Values.ToList());

                    if (res.Errors != null && res.Errors.Length > 0)
                    {
                        Errors.Set(context, res.Errors.ToString());
                    }
                }
            }

            catch (Exception ex)
            {
                Errors.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Errors.Get(context)));
        }
示例#3
0
        /*
         * [Description("Строка ошибки")]
         * [DisplayName("Ошибка")]
         * public OutArgument<string> Error { get; set; }
         *
         * [RequiredArgument]
         * [Description("Уникальный номер отчета")]
         * [DisplayName("Идентификатор отчета")]
         * [Category("Отчет")]
         * public InArgument<string> Report_id { get; set; }
         *
         * [RequiredArgument]
         * [Description("Начальная дата отчета")]
         * [DisplayName("Начальная дата")]
         * [Category("Отчет")]
         * public InArgument<DateTime> StartDateTime { get; set; }
         *
         * [RequiredArgument]
         * [Description("Конечная дата отчета")]
         * [DisplayName("Конечная дата")]
         * [Category("Отчет")]
         * public InArgument<DateTime> EndDateTime { get; set; }
         *
         * [Description("Формат отчета")]
         * [DisplayName("Формат")]
         * [Category("Отчет")]
         * public ReportExportFormat ReportFormat { get; set; }
         *
         * //--------------------------------------------------------------
         * [RequiredArgument]
         * [Description("Адрес получателя")]
         * [DisplayName("Адресат")]
         * [Category("Электронная почта")]
         * public InArgument<string> To { get; set; }
         *
         * [RequiredArgument]
         * [Description("Адрес отправителя")]
         * [DisplayName("Отправитель")]
         * [Category("Электронная почта")]
         * public InArgument<string> From { get; set; }
         *
         * [RequiredArgument]
         * [Description("Тема письма")]
         * [DisplayName("Тема")]
         * [Category("Электронная почта")]
         * public InArgument<string> Subject { get; set; }
         *
         * [DisplayName("Тело письма")]
         * [Category("Электронная почта")]
         * public InArgument<string> Body { get; set; }
         *
         * [RequiredArgument]
         * [DefaultValue(25)]
         * [DisplayName("Порт")]
         * [Category("Электронная почта")]
         * public int Port { get; set; }
         *
         * [RequiredArgument]
         * [DisplayName("Имя пользователя")]
         * [Category("Электронная почта")]
         * public InArgument<string> UserName { get; set; }
         *
         * [RequiredArgument]
         * [DisplayName("Пароль")]
         * [Category("Электронная почта")]
         * public InArgument<string> Password { get; set; }
         *
         * [RequiredArgument]
         * [DisplayName("Почтовый сервер")]
         * [Category("Электронная почта")]
         * public InArgument<string> Host { get; set; }
         *
         * protected override void CacheMetadata(CodeActivityMetadata metadata)
         * {
         *  if (Port <= 0)
         *      metadata.AddValidationError("Значение свойства 'Порт' должно быть больше 0");
         *  base.CacheMetadata(metadata);
         * }
         *
         *
         * protected string GetFileExtByReportFormat()
         * {
         *  string Ext = "";
         *  if (ReportFormat == ReportExportFormat.Csv) Ext = "csv";
         *  if (ReportFormat == ReportExportFormat.Excel) Ext = "xls";
         *  if (ReportFormat == ReportExportFormat.Excel2007) Ext = "xlsx";
         *  if (ReportFormat == ReportExportFormat.ImageBmp) Ext = "bmp";
         *  if (ReportFormat == ReportExportFormat.ImageEmf) Ext = "emf";
         *  if (ReportFormat == ReportExportFormat.ImageGif) Ext = "gif";
         *  if (ReportFormat == ReportExportFormat.ImageJpeg) Ext = "jpg";
         *  if (ReportFormat == ReportExportFormat.ImagePcx) Ext = "pcx";
         *  if (ReportFormat == ReportExportFormat.ImagePng) Ext = "png";
         *  if (ReportFormat == ReportExportFormat.ImageTiff) Ext = "Tiff";
         *  if (ReportFormat == ReportExportFormat.Mht) Ext = "mht";
         *  if (ReportFormat == ReportExportFormat.Ods) Ext = "ods";
         *  if (ReportFormat == ReportExportFormat.Odt) Ext = "odt";
         *  if (ReportFormat == ReportExportFormat.Pdf) Ext = "pdf";
         *  if (ReportFormat == ReportExportFormat.Ppt2007) Ext = "ppt";
         *  if (ReportFormat == ReportExportFormat.Rtf) Ext = "rtf";
         *  if (ReportFormat == ReportExportFormat.Text) Ext = "txt";
         *  if (ReportFormat == ReportExportFormat.Word2007) Ext = "docx";
         *  if (ReportFormat == ReportExportFormat.Xps) Ext = "xps";
         *  if (Ext != "")
         *      Ext = "." + Ext;
         *  return Ext;
         * }
         *
         * protected void SendEmail(CodeActivityContext context,MemoryStream AttachContent)
         * {
         *
         *  MailMessage mailMessage = new MailMessage();
         *
         *  mailMessage.From = new MailAddress(From.Get(context));
         *  string STo = To.Get(context);
         *
         *  STo.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList()
         *      .ForEach(item => mailMessage.To.Add(item.Trim()));
         *
         *  mailMessage.Subject = Subject.Get(context);
         *  mailMessage.Body = Body.Get(context);
         *
         *  SmtpClient smtpClient = new SmtpClient();
         *  smtpClient.Host = Host.Get(context);
         *  smtpClient.Port = Port;
         *  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
         *  if (!String.IsNullOrEmpty(UserName.Get(context)) && !String.IsNullOrEmpty(Password.Get(context)))
         *      smtpClient.Credentials = new System.Net.NetworkCredential(UserName.Get(context), Password.Get(context));
         *
         *  if (AttachContent != null)
         *  {
         *      Attachment Attach = new Attachment(AttachContent, "Отчет"+GetFileExtByReportFormat());
         *      mailMessage.Attachments.Add(Attach);
         *  }
         *  //throw new Exception("Error sending email"); // test exception
         *  smtpClient.Send(mailMessage);
         * }
         */

        protected override bool Execute(CodeActivityContext context)
        {
            Error.Set(context, null);
            //SectionIntegralComplexResults DataReport;
            KeyValuePair <Guid, TReportResult> RepF = new KeyValuePair <Guid, TReportResult>();
            MemoryStream doc = null;

            try
            {
                string userId = null;
                if (!string.IsNullOrEmpty(User_ID))
                {
                    try
                    {
                        userId = UserHelper.GetIdByUserName(User_ID);
                        if (string.IsNullOrEmpty(userId)) // похоже тут не имя а UserID
                        {
                            userId = User_ID;
                        }
                    }
                    catch (Exception ex)
                    {
                        Error.Set(context, ex.Message);
                        if (!HideException.Get(context))
                        {
                            throw ex;
                        }
                    }
                }

                RepF = ARM_Service.REP_Export_Report(userId, ReportFormat, Report_id.Get(context),
                                                     StartDateTime.Get(context), EndDateTime.Get(context), null, WcfTimeOut.Get(context));
                doc = LargeData.DownloadData(RepF.Key);


                if (!string.IsNullOrEmpty(RepF.Value.Error))
                {
                    Error.Set(context, RepF.Value.Error);
                }
                else
                {
                    SendEmail(context, doc);
                }
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#4
0
        protected override bool Execute(CodeActivityContext context)
        {
            if (TIList.Get(context) == null)
            {
                Error.Set(context, "Не определен список идентификаторов ТИ");
                return(false);
            }

            var inList = TIList.Get(context);

            if (inList.Count == 0)
            {
                Error.Set(context, "Список идентификаторов ТИ не должен быть пустым");
                return(false);
            }

            var result = new List <EventsJournalTI>();

            try
            {
                var res = ARM_Service.JTI_GetAllTIJournals(inList, StartDateTime.Get(context), EndDateTime.Get(context));
                if (res != null)
                {
                    foreach (var jti in res)
                    {
                        result.Add(new EventsJournalTI
                        {
                            TI_ID                   = jti.TI_ID,
                            EventDateTime           = jti.EventDateTime,
                            EventCode               = jti.EventCode,
                            DispatchDateTime        = jti.DispatchDateTime,
                            ExtendedEventCode       = jti.ExtendedEventCode,
                            Event61968Domain_ID     = jti.Event61968Domain_ID,
                            Event61968DomainPart_ID = jti.Event61968DomainPart_ID,
                            Event61968Type_ID       = jti.Event61968Type_ID,
                            Event61968Index_ID      = jti.Event61968Index_ID,
                            Event61968Param         = jti.Event61968Param
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            EventsJournal.Set(context, result);
            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#5
0
        protected override bool Execute(CodeActivityContext context)
        {
            var buildID = Guid.NewGuid();

            //throw new Exception("Error !!!!!!!!!!"); // test exception

            try
            {
                var psList = Ps_List.Get(context);
                if (psList == null || psList.Count == 0)
                {
                    Error.Set(context, "Список ПС не может быть пустым");
                    return(false);
                }

                //TODO часовой пояс
                var res = ARM_Service.BPS_GenerateBalancePSExcel(buildID,
                                                                 psList,
                                                                 StartDateTime.Get(context),
                                                                 EndDateTime.Get(context),
                                                                 DiscreteType,
                                                                 DataSourceType,
                                                                 isPower, false, null);

                if (res != null)
                {
                    var generatedFile = new MemoryStream();
                    var res2          = ARM_Service.AUTODOCUM_LoadGeneratedZip(buildID);
                    if (res2 != null)
                    {
                        ReadAndWriteToAnotherStream(res2, generatedFile, false);
                        generatedFile.Seek(0, SeekOrigin.Begin);

                        Document.Set(context, generatedFile);
                        ResultReport.Set(context, res);
                    }
                }
            }

            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)
        {
            if (string.IsNullOrEmpty(ObjectIds))
            {
                Errors.Set(context, "Не определены объекты для которых будет сформирован баланс");
                return(false);
            }

            MultiPsSelectedArgs args;

            try
            {
                args = ObjectIds.DeserializeFromString <MultiPsSelectedArgs>();
            }
            catch (Exception ex)
            {
                Errors.Set(context, "Ошибка преобразования параметров " + ex.Message);
                return(false);
            }

            try
            {
                var res = ARM_Service.BL_GetFreeHierarchyBalanceByObjects(args.PSList,
                                                                          StartDateTime.Get(context),
                                                                          EndDateTime.Get(context), TimeZoneId,
                                                                          DiscreteType, UnitDigit);

                if (res != null && res.CalculatedValues != null)
                {
                    Balances.Set(context, res.CalculatedValues.Values.ToList());

                    if (res.Errors != null && res.Errors.Length > 0)
                    {
                        Errors.Set(context, res.Errors.ToString());
                    }
                }
            }

            catch (Exception ex)
            {
                Errors.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Errors.Get(context)));
        }
        protected override bool Execute(CodeActivityContext context)
        {
            try
            {
                var balanceFreeHierarchyUNs = new List <string> {
                    BalanceId.Get(context)
                };

                var balanceResult = ARM_Service.BL_GetFreeHierarchyBalanceResult(balanceFreeHierarchyUNs,
                                                                                 StartDateTime.Get(context),
                                                                                 EndDateTime.Get(context),
                                                                                 null,
                                                                                 TExportExcelAdapterType.toXLSx, true,
                                                                                 DiscreteType, EnumUnitDigit.Kilo, false,
                                                                                 EnumUnitDigit.Kilo, true, false, 3, 3, false, false, false);

                if (balanceResult != null)
                {
                    if (balanceResult.CalculatedValues == null || balanceResult.CalculatedValues.Count == 0)
                    {
                        throw new Exception("Документ не сформирован. Неверный идентификатор или баланс удален.");
                    }

                    var calculatedResult = balanceResult.CalculatedValues.First().Value;

                    if (calculatedResult.CompressedDoc == null)
                    {
                        throw new Exception("Документ пуст. Ошибка формирования");
                    }

                    var ms = new MemoryStream();

                    CompressUtility.DecompressGZip(calculatedResult.CompressedDoc).CopyTo(ms);
                    ms.Position = 0;
                    Document.Set(context, ms);
                }
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#8
0
        protected override bool Execute(CodeActivityContext context)
        {
            var balanceUn = BalancePS_UN.Get(context);

            if (string.IsNullOrEmpty(balanceUn))
            {
                Error.Set(context, "Не определен Идентификатор баланса");
                return(false);
            }

            //Balance_Description_PS BDesc = ARM_Service.BL_Get_BalancePS_Descriptions(BalanceUN);
            //if (BDesc == null)
            //{
            //    Error.Set(context, "Не определен баланс c таким идентификатором " + BalanceUN);
            //    return false;
            //}

            //if (BDesc.Balance_Info_2==null || !BDesc.Balance_Info_2.PS_ID.HasValue)
            //{
            //    Error.Set(context, "Не определена связь баланса c ПС");
            //    return false;
            //}

            TBalansPSValidateResult result = null;

            //var listPs = new List<int> {(int) BDesc.Balance_Info_2.PS_ID};

            try
            {
                result = ARM_Service.BPS_GetPSBalanceValidation(balanceUn,
                                                                StartDateTime.Get(context),
                                                                EndDateTime.Get(context),
                                                                DataSourceType,
                                                                isPower, null, true);
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            BalansPSValidateResult.Set(context, result);
            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#9
0
        protected override bool Execute(CodeActivityContext context)
        {
            SectionIntegralComplexResults Res;

            try
            {
                //TODO часовой пояс
                Res = ARM_Service.SIA_GetSectionIntegralActExcelDocumentWithATSCode(
                    SectionID.Get(context),
                    StartDateTime.Get(context),
                    DataSourceType,
                    DiscreteType,
                    IsPower,
                    IsEnabledRChannel,
                    BusRelation,
                    IsAllocateCA,
                    IsOffsetFromMoscowEnbledForDrums,
                    IsFilterPSEnabled,
                    IsReadCalculatedValues,
                    IsClosedPeriod, null);

                if (Res.Document != null)
                {
                    Res.Document.Position = 0;
                    MemoryStream ms = CompressUtility.DecompressGZip(Res.Document);
                    ms.Position = 0;
                    Document.Set(context, ms);
                }

                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)));
        }
        protected override bool Execute(CodeActivityContext context)
        {
            try
            {
                var res = ARM_Service.BPS_GetBalansPSResultAndHtmlDocument2(BalanceId.Get(context),
                                                                            StartDateTime.Get(context),
                                                                            EndDateTime.Get(context),
                                                                            DiscreteType,                     //.Get(context),
                                                                            DataSourceType,                   //.Get(context),
                                                                            isPower,                          //.Get(context),
                                                                            isOffsetFromMoscowEnbledForDrums, //.Get(context),
                                                                            IsPowerEquipmentEnabled, 7, null, false);

                if (res.Errors != null)
                {
                    Error.Set(context, res.Errors.ToString());
                }

                var ms = CompressUtility.DecompressGZip(res.HTMLDocument);

                if (ms != null)
                {
                    ms.Position = 0;
                    Document.Set(context, ms);
                }

                IsHasUnbalanceValue.Set(context, !res.IsHasUnbalanceValue);
            }

            catch (Exception ex)
            {
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(true);
        }
示例#11
0
        protected override bool Execute(CodeActivityContext context)
        {
            SectionIntegralResults Res;

            try
            {
                Res = ARM_Service.SIA_GetFlowBalanceReport(
                    SectionID.Get(context),
                    TExportExcelAdapterType.toXLS,
                    StartDateTime.Get(context),
                    DataSourceType,
                    BusRelation,
                    true,
                    false, null, true, true, null);

                if (Res.CompressedDoc != null)
                {
                    Res.CompressedDoc.Position = 0;
                    MemoryStream ms = CompressUtility.DecompressGZip(Res.CompressedDoc);
                    ms.Position = 0;
                    Document.Set(context, ms);
                }

                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)));
        }
示例#12
0
        protected override bool Execute(CodeActivityContext context)
        {
            List <Int32> L = PS_ID_List.Get(context);

            if (L == null || L.Count == 0)
            {
                Error.Set(context, "Не определен список ПС");
                return(false);
            }


            try
            {
                var res = ARM_Service.BPS_GetPSBalanceValidationList(PS_ID_List.Get(context),
                                                                     StartDateTime.Get(context),
                                                                     EndDateTime.Get(context),
                                                                     enumTimeDiscreteType.DBInterval,
                                                                     DataSourceType,
                                                                     isPower, null);
                BalanceValidationList.Set(context, res);
                if (res.Errors != null && res.Errors.Length > 0)
                {
                    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)));
        }
示例#13
0
        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)));
        }
        protected override bool Execute(System.Activities.CodeActivityContext context)
        {
            Error.Set(context, null);

            if (string.IsNullOrEmpty(Args))
            {
                Error.Set(context, "Не определены объекты для которых будет сформирован отчет");
                return(false);
            }

            MultiPsSelectedArgs args;

            try
            {
                args = Args.DeserializeFromString <MultiPsSelectedArgs>();
            }
            catch (Exception ex)
            {
                Error.Set(context, "Ошибка преобразования параметров " + ex.Message);
                return(false);
            }

            args.DtStart = StartDateTime.Get(context); //Начальная дата
            args.DtEnd   = EndDateTime.Get(context);   //Конечная дата
            var reportUn = Report_id.Get(context);

            var businessObjectName = string.Empty; //Определяем какой бизнес объект используется в отчете

            try
            {
                try
                {
                    if (!string.IsNullOrEmpty(reportUn))
                    {
                        businessObjectName = ServiceFactory.StimulReportInvokeSync <string>("GetUsedBusinessObjectsNames", reportUn);
                    }
                }
                catch (Exception ex)
                {
                    Error.Set(context, "Ошибка запроса бизнес модели отчета " + ex.Message);
                    return(false);
                }

                BusinessObjectHelper.BuildBusinessObjectsParams(businessObjectName, args);

                var errs       = new StringBuilder();
                var compressed = StimulReportsProcedures.LoadDocument(Report_id.Get(context), errs, args, ReportFormat, args.TimeZoneId);
                if (errs.Length > 0)
                {
                    Error.Set(context, errs.ToString());
                }


                if (compressed == null)
                {
                    Error.Set(context, "Ошибка загрузки документа");
                    return(false);
                }

                SendEmail(context, CompressUtility.DecompressGZip(compressed));
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#15
0
        protected override bool Execute(CodeActivityContext context)
        {
            object obj_id = ObjectID.Get(context);

            if (obj_id == null)
            {
                Error.Set(context, "Не опреден идентификатор объекта");
                return(false);
            }

            SummValues.Set(context, 0);
            Status.Set(context, (int)VALUES_FLAG_DB.DataNotFull);
            StatusStr.Set(context, TVALUES_DB.FLAG_to_String(VALUES_FLAG_DB.DataNotFull, ";"));

            var found = false;
            List <TVALUES_DB> vallist = null;

            try
            {
                var tidList   = new List <ID_Hierarchy_Channel>();
                var IH_Chanel = new ID_Hierarchy_Channel();
                IH_Chanel.ID            = obj_id.ToString();
                IH_Chanel.TypeHierarchy = (enumTypeHierarchy)ObjectType;
                IH_Chanel.Channel       = (byte)Channel;
                tidList.Add(IH_Chanel);

                //TODO часовой пояс
                var res = ARM_Service.DS_GetArchivesHierObjectLastHalfHours(
                    tidList,
                    IsCoeffEnabled,
                    StartDateTime.Get(context),
                    EndDateTime.Get(context),
                    DataSourceType,
                    DiscreteType, UnitDigit, false, null);


                if (res != null && res.Result_Values != null && res.Result_Values.Count > 0)
                {
                    var resultValues = new Dictionary <ID_Hierarchy_Channel, List <TVALUES_DB> >(res.Result_Values, new ID_Hierarchy_Channel_EqualityComparer());

                    if (resultValues.TryGetValue(IH_Chanel, out vallist) && vallist != null)
                    {
                        found = true;
                        var R = vallist.Accomulate();
                        SummValues.Set(context, R.F_VALUE);
                        Status.Set(context, (int)R.F_FLAG);
                        StatusStr.Set(context, TVALUES_DB.FLAG_to_String(R.F_FLAG, ";"));
                    }
                }
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            if (vallist == null)
            {
                vallist = new List <TVALUES_DB>();
            }
            ValueList.Set(context, vallist);

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#16
0
        protected override bool Execute(CodeActivityContext context)
        {
            var formulaUn = Formula_UN.Get(context);

            if (string.IsNullOrEmpty(formulaUn))
            {
                Error.Set(context, "Не определен идентификатор формулы");
                return(false);
            }

            var fId = new TFormulaParam
            {
                FormulaID     = formulaUn,
                FormulasTable = enumFormulasTable.Info_Formula_Description,
                IsFormulaHasCorrectDescription = true,
            };

            TFormulasResult result = null;

            try
            {
                var res = ARM_Service.FR_GetFormulasResults(new List <TFormulaParam> {
                    fId
                },
                                                            StartDateTime.Get(context),
                                                            EndDateTime.Get(context),
                                                            DiscreteType,
                                                            DataSourceType,
                                                            1,
                                                            IsCoeffEnabled,
                                                            false,
                                                            isPower,
                                                            false,
                                                            UnitDigit, null, false, false);


                if (res != null && res.Result_Values != null && res.Result_Values.Count > 0)
                {
                    var rv = res.Result_Values[0];
                    if (rv != null && rv.Result_Values != null && rv.Result_Values.Count > 0)
                    {
                        result = rv.Result_Values[0];
                        if (result.Val_List != null)
                        {
                            var r = result.Val_List.Accomulate();
                            SummValues.Set(context, r.F_VALUE);
                            Status.Set(context, (int)r.F_FLAG);
                            StatusStr.Set(context, TVALUES_DB.FLAG_to_String(r.F_FLAG, ";"));
                        }
                    }
                }

                if (res.Errors != null)
                {
                    Error.Set(context, res.Errors.ToString());
                }

                FormulaResult.Set(context, result);
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }
            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#17
0
        protected override bool Execute(CodeActivityContext context)
        {
            List <string> _ListAisId = ListAisId.Get(context);
            bool          roundData  = RoundData.Get(context);

            if (_ListAisId == null || _ListAisId.Count == 0)
            {
                Error.Set(context, "Список идентификаторов АИС не может быть пустым");
                return(false);
            }

            try
            {
                XMLATSExportSingleObjectResultCompressed Res = ARM_Service.XMLExportGetAIS80020Ext(StartDateTime.Get(context), EndDateTime.Get(context), _ListAisId, DataSourceType, isReadCalculatedValues, roundData, false, false, false, 1, true);
                if (!string.IsNullOrEmpty(Res.Errors))
                {
                    Error.Set(context, Res.Errors);
                }

                Document.Set(context, Res.XMLStreamCompressed);
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#18
0
        protected override bool Execute(CodeActivityContext context)
        {
            Error.Set(context, null);
            KeyValuePair <Guid, TReportResult> RepF = new KeyValuePair <Guid, TReportResult>();
            MemoryStream doc = null;

            try
            {
                /*
                 * string User_ID = "";
                 * List<UserInfo> UInfos = ARM_Service.EXPL_Get_All_Users();
                 * foreach (UserInfo u in UInfos)
                 *  if (u.UserName == UserName)
                 *  {
                 *      User_ID = u.User_ID;
                 *      break;
                 *  }
                 * if (string.IsNullOrEmpty(User_ID))
                 * {
                 *  Error.Set(context, "Пользователь '" + UserName+"' не найден в системе");
                 *  return false;
                 * }
                 */

                string userId = null;
                if (!string.IsNullOrEmpty(UserName))
                {
                    try
                    {
                        userId = UserHelper.GetIdByUserName(UserName);
                    }
                    catch (Exception ex)
                    {
                        Error.Set(context, ex.Message);
                        if (!HideException.Get(context))
                        {
                            throw ex;
                        }
                    }
                }

                if (string.IsNullOrEmpty(userId))
                {
                    Error.Set(context, "Пользователь '" + UserName + "' не найден в системе");
                    return(false);
                }

                RepF = ARM_Service.REP_Export_Report(userId, ReportFormat, Report_id.Get(context), StartDateTime.Get(context), EndDateTime.Get(context), null, WcfTimeOut.Get(context));
                doc  = LargeData.DownloadData(RepF.Key);

                if (!string.IsNullOrEmpty(RepF.Value.Error))
                {
                    Error.Set(context, RepF.Value.Error);
                }
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            return(string.IsNullOrEmpty(Error.Get(context)));
        }
示例#19
0
        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)));
        }
        protected override bool Execute(CodeActivityContext context)
        {
            int ti_id = TiId.Get(context);

            Value.Set(context, 0);
            Status.Set(context, (int)VALUES_FLAG_DB.DataNotFull);
            StatusStr.Set(context, TVALUES_DB.FLAG_to_String(VALUES_FLAG_DB.DataNotFull, ";"));
            ValueDateTime.Set(context, DateTime.MinValue);

            List <TINTEGRALVALUES_DB> _valueList = new List <TINTEGRALVALUES_DB>();

            ValueList.Set(context, _valueList);

            if (RequestType == enumEnrgyQualityRequestType.Archive)
            {
                if (StartDateTime.Get(context) == null || EndDateTime.Get(context) == null)
                {
                    Error.Set(context, "Для архивных значений начальная и конечная дата должна быть определена");
                    return(false);
                }
            }

            try
            {
                List <TI_ChanelType> tiList = new List <TI_ChanelType>()
                {
                    new TI_ChanelType()
                    {
                        TI_ID          = ti_id,
                        ChannelType    = Channel.Get(context),
                        DataSourceType = DataSourceType,
                    }
                };

                if (RequestType == enumEnrgyQualityRequestType.Archive)
                {
                    //TODO часовой пояс
                    var values = ARM_Service.DS_GetIntegralsValues_List(tiList,
                                                                        StartDateTime.Get(context),
                                                                        EndDateTime.Get(context),
                                                                        IsCoeffEnabled, false, false, true, false, false, enumTimeDiscreteType.DBHalfHours, EnumUnitDigit.None, null, false,
                                                                        false);


                    if (values != null && values.IntegralsValue30orHour != null && values.IntegralsValue30orHour.Count > 0)
                    {
                        var    integralTiValue = values.IntegralsValue30orHour[0];
                        double diff            = 0;
                        var    flag            = VALUES_FLAG_DB.None;
                        if (integralTiValue.Val_List != null)
                        {
                            foreach (var iVal in integralTiValue.Val_List)
                            {
                                diff += iVal.F_VALUE_DIFF;
                                flag  = flag.CompareAndReturnMostBadStatus(iVal.F_FLAG);
                                _valueList.Add(iVal);
                            }
                        }

                        Value.Set(context, diff);
                        var stat = flag;
                        Status.Set(context, (int)stat);
                        StatusStr.Set(context, TVALUES_DB.FLAG_to_String(stat, ";"));

                        if (integralTiValue.Val_List != null && integralTiValue.Val_List.Count > 0)
                        {
                            ValueDateTime.Set(context, integralTiValue.Val_List.Last().EventDateTime);
                        }
                    }
                }
                else
                {
                    var Val = ARM_Service.DS_ReadLastIntegralArchives(tiList);
                    if (Val != null && Val.Count > 0)
                    {
                        var ValDict = Val.ToDictionary(k => k.Key, v => v.Value, new TI_ChanelComparer());
                        foreach (var r in tiList)
                        {
                            TINTEGRALVALUES_DB i_val;

                            if (ValDict.TryGetValue(r, out i_val) && i_val != null)
                            {
                                Value.Set(context, i_val.F_VALUE);
                                Status.Set(context, (int)i_val.F_FLAG);
                                StatusStr.Set(context, TVALUES_DB.FLAG_to_String(i_val.F_FLAG, ";"));
                                ValueDateTime.Set(context, i_val.EventDateTime);
                                _valueList.Add(i_val);
                                break;
                            }
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }

            ValueList.Set(context, _valueList);

            return(string.IsNullOrEmpty(Error.Get(context)));
        }