コード例 #1
0
        private MessageReportResponse <ContactsStatesReportModel> ContactsStatesReportResponse(string messageId, string[] automationStates, string language, DataPage page, int utcOffset)
        {
            MessageReportResponse <ContactsStatesReportModel> response = new MessageReportResponse <ContactsStatesReportModel>();

            try
            {
                Guid      guid  = new Guid(messageId);
                DataTable table = this.GetContactsStatesData(guid, automationStates, language, page);
                int       num   = page.Index * page.Size;
                int       num2  = num + page.Size;
                if (num2 > (table.Rows.Count + num))
                {
                    num2 = table.Rows.Count + num;
                }
                int num3 = (table.Rows.Count < page.Size) ? table.Rows.Count : page.Size;
                List <ContactsStatesReportModel> list = new List <ContactsStatesReportModel>(num2 - num);
                for (int i = 0; i < num3; i++)
                {
                    DataRow  row      = table.Rows[i];
                    DateTime dateTime = (DateTime)row["Entry"];
                    ContactsStatesReportModel item = new ContactsStatesReportModel
                    {
                        Email     = (string)row["Email"],
                        UtcEntry  = dateTime,
                        FullName  = row["FullName"] as string,
                        ItemId    = Guid.NewGuid().ToString(),
                        StateName = (string)row["StateName"]
                    };
                    DateTime datetime = Util.ServerTimeToLocal(dateTime, utcOffset);
                    item.Entry = DateUtil.ToIsoDate(datetime);
                    list.Add(item);
                }
                response.Results = list.ToArray();
                DataPage page2 = new DataPage
                {
                    Size  = page.Size,
                    Index = page.Index + 1
                };
                int num5 = this.GetContactsStatesData(guid, automationStates, language, page2).Rows.Count + num2;
                response.TotalCount = num5;
            }
            catch (Exception exception)
            {
                Log.Error(exception.Message, exception, this);
                response.Error        = true;
                response.ErrorMessage = EcmTexts.Localize("A serious error occurred please contact the administrator", new object[0]);
            }
            return(response);
        }
コード例 #2
0
        private Response GetMessagePerformancePerLanguageReportResponse(string messageId)
        {
            MessageReportResponse <MessageStatistics> response = new MessageReportResponse <MessageStatistics>();

            try
            {
                List <MessageStatistics> messageStatistics = this.messageStatisticsService.GetMessageStatistics(new Guid(messageId));
                messageStatistics.RemoveAll(s => s.Language == "0");
                response.Results    = messageStatistics.ToArray();
                response.TotalCount = messageStatistics.Count <MessageStatistics>();
            }
            catch (Exception exception)
            {
                Log.Error(exception.Message, exception, this);
                response.Error        = true;
                response.ErrorMessage = EcmTexts.Localize("A serious error occurred please contact the administrator", new object[0]);
            }
            return(response);
        }
コード例 #3
0
        private Response GetEmailLandingPagesReportResponse(string messageId, string language, SortParameter sortParameter, DataPage page)
        {
            if (sortParameter == null)
            {
                sortParameter = new SortParameter("Value", SortDirection.Desc);
            }
            MessageReportResponse <EmailLandingPagesReportModel> response = new MessageReportResponse <EmailLandingPagesReportModel>();

            try
            {
                DataTable dataTable = this.emailLandingPagesRepository.GetEmailLandingPagesData(new Guid(messageId), language, sortParameter);
                response.Results    = this.Convert(dataTable, page).ToArray();
                response.TotalCount = dataTable.Rows.Count;
            }
            catch (Exception exception)
            {
                Log.Error(exception.Message, exception, this);
                response.Error        = true;
                response.ErrorMessage = EcmTexts.Localize("A serious error occurred please contact the administrator", new object[0]);
            }
            return(response);
        }
コード例 #4
0
        private Response GetBestEmailLandingPagesReportResponse(string messageId, string language, SortParameter sortParameter)
        {
            MessageReportResponse <BestEmailLandingPagesReportModel> messageReportResponse = new MessageReportResponse <BestEmailLandingPagesReportModel>();

            try
            {
                DataTable dataTable = this.emailLandingPagesRepository.GetEmailLandingPagesData(new Guid(messageId), language, new SortParameter("Url", SortDirection.Asc));
                List <BestEmailLandingPagesReportModel> list = new List <BestEmailLandingPagesReportModel>(this.bestPagesMappings.Count);
                foreach (KeyValuePair <string, string> current in this.bestPagesMappings)
                {
                    BestEmailLandingPagesReportModel bestEmailLandingPagesReportModel = new BestEmailLandingPagesReportModel();
                    bestEmailLandingPagesReportModel.ItemId = Guid.NewGuid().ToString();
                    bestEmailLandingPagesReportModel.PerformanceIndicator       = EcmTexts.Localize(current.Value, new object[0]);
                    bestEmailLandingPagesReportModel.PerformanceIndicatorColumn = current.Key;
                    if (dataTable.Rows.Count == 0)
                    {
                        bestEmailLandingPagesReportModel.EmailLandingPages = new EmailLandingPagesReportModel[0];
                        bestEmailLandingPagesReportModel.Url = "-";
                    }
                    else
                    {
                        dataTable.DefaultView.Sort = string.Format("{0} DESC", current.Key);
                        dataTable = dataTable.DefaultView.ToTable();
                        bestEmailLandingPagesReportModel.EmailLandingPages = this.Convert(dataTable, null).ToArray();
                        bestEmailLandingPagesReportModel.Url = (string)dataTable.Rows[0]["Url"];
                    }
                    list.Add(bestEmailLandingPagesReportModel);
                }
                if (sortParameter != null)
                {
                    if (sortParameter.Name == "performanceIndicator")
                    {
                        List <BestEmailLandingPagesReportModel> arg_1B5_0;
                        if (sortParameter.Direction != SortDirection.Desc)
                        {
                            arg_1B5_0 = (from model in list
                                         orderby model.PerformanceIndicator
                                         select model).ToList <BestEmailLandingPagesReportModel>();
                        }
                        else
                        {
                            arg_1B5_0 = (from model in list
                                         orderby model.PerformanceIndicator descending
                                         select model).ToList <BestEmailLandingPagesReportModel>();
                        }
                        list = arg_1B5_0;
                    }
                    if (sortParameter.Name == "url")
                    {
                        List <BestEmailLandingPagesReportModel> arg_223_0;
                        if (sortParameter.Direction != SortDirection.Desc)
                        {
                            arg_223_0 = (from model in list
                                         orderby model.Url
                                         select model).ToList <BestEmailLandingPagesReportModel>();
                        }
                        else
                        {
                            arg_223_0 = (from model in list
                                         orderby model.Url descending
                                         select model).ToList <BestEmailLandingPagesReportModel>();
                        }
                        list = arg_223_0;
                    }
                }
                messageReportResponse.Results    = list.ToArray();
                messageReportResponse.TotalCount = list.Count;
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error(ex.Message, ex, this);
                messageReportResponse.Error        = true;
                messageReportResponse.ErrorMessage = EcmTexts.Localize("A serious error occurred please contact the administrator", new object[0]);
            }
            return(messageReportResponse);
        }