예제 #1
0
        protected virtual IExcelReportConfiguration CreateDefaultConfiguration <T>()
            where T : class
        {
            var configurationBuilder = new ExcelConfigurationBuilder <T>();

            return(configurationBuilder.BuildConfiguration());
        }
        /// <summary>
        /// Creates campaign list excel configuration builder.
        /// </summary>
        /// <param name="builder">The builder.</param>
        private static ExcelConfigurationBuilder <CampaignReportModel> CreateExcelConfigurationBuilder()
        {
            var confBuilder = new ExcelConfigurationBuilder <CampaignReportModel>()
                              .DefaultStyle(GamePlanReportStyles.DataCellStyle.Name)
                              .HeaderStyle(GamePlanReportStyles.HeaderStyle.Name)
                              .AlternateBackgroundColors(GamePlanReportStyles.AlternateBackgroundColors);

            var currencyFormatter = new CurrencyReportFormatter();

            confBuilder
            .ForMember(с => с.DemoGraphic, o => o.Header("Demographic"))
            .ForMember(с => с.Payback, o => o.Formatter(currencyFormatter))
            .ForMember(с => с.RevenueBooked, o => o.Formatter(currencyFormatter))
            .ForMember(с => с.TopTail, o => o.Header("Top/Tail"))
            .ForMember(с => с.RatingsDifferenceExcludingPayback,
                       o => o.Formatter(ReportFormatter.DecimalRoundingFormatter).Header("+/- Ratings Excl. PB"))
            .ForMember(с => с.ValueDifference, o => o.Formatter(currencyFormatter).Header("+/- Value"))
            .ForMember(с => с.ValueDifferenceExcludingPayback, o => o.Formatter(currencyFormatter).Header("+/- Value Excl. PB"))
            .ForMember(с => с.AchievedPercentageTargetRatings,
                       o => o.Formatter(ReportFormatter.DecimalRoundingFormatter).Header("Achieved % (ratings)"))
            .ForMember(с => с.AchievedPercentageRevenueBudget,
                       o => o.Formatter(ReportFormatter.DecimalRoundingFormatter).Header("Achieved % (value)"))
            .ForMember(с => с.Spots, o => o.Header("Spots (actual)"))
            .ForMember(с => с.CreationDate, o => o.Formatter(ReportFormatter.ConvertToShortDate))
            .ForMember(с => с.ProductAssignee, o => o.Header("Person (Product Assignee)"))
            .ForMember(с => с.MediaSalesGroup, o => o.Header("Media Group"));

            return(confBuilder);
        }
        private static ExcelReportConfiguration GetDefaultExcelConfig()
        {
            var configBuilder = new ExcelConfigurationBuilder <SaleData>();
            var config        = configBuilder.BuildConfiguration();

            return(config);
        }
        public void SetIgnoreNotMapped()
        {
            var configBuilder = new ExcelConfigurationBuilder <SaleData>()
                                .IgnoreNotDescribed();
            var config = configBuilder.BuildConfiguration();

            Assert.Empty(config.MemberConfigurations.GetActiveOrderlyOptions());
        }
        public void SetHideHeader()
        {
            var configBuilder = new ExcelConfigurationBuilder <SaleData>()
                                .HideHeader();
            var config = configBuilder.BuildConfiguration();

            Assert.True(config.Options.IsHideHeader);
        }
        public void SetDefaultStyle()
        {
            var configBuilder = new ExcelConfigurationBuilder <SaleData>()
                                .DefaultStyle(GamePlanReportStyles.DataCellStyle.Style);
            var config = configBuilder.BuildConfiguration();

            Assert.NotNull(GamePlanReportStyles.DataCellStyle.Style);
            Assert.True(config.Options.IsSetDefaultStyle);
        }
        public void SetAlternateBackgroundColors()
        {
            var configBuilder = new ExcelConfigurationBuilder <SaleData>()
                                .AlternateBackgroundColors(new Color[] { Color.Red, Color.Green, Color.Blue });
            var config = configBuilder.BuildConfiguration();

            Assert.True(config.Options.HasAlternateBackgroundColor);
            Assert.Equal(3, config.Options.AlternateBackgroundColors.Count);
            Assert.Equal(Color.Red, config.Options.AlternateBackgroundColors[0].Value);
            Assert.Equal(Color.Green, config.Options.AlternateBackgroundColors[1].Value);
            Assert.Equal(Color.Blue, config.Options.AlternateBackgroundColors[2].Value);
        }
예제 #8
0
        public List <T> ApplySettings <T>(IEnumerable <T> data, IEnumerable <ColumnStatusModel> columnStatusModelList,
                                          ExcelConfigurationBuilder <T> configurationBuilder) where T : class
        {
            var orderData = data?.ToList() ?? new List <T>();

            if (!orderData.Any() ||
                columnStatusModelList is null ||
                !columnStatusModelList.Any() || configurationBuilder == null)
            {
                return(orderData);
            }

            var sortFields = new List <string>();

            foreach (var columnStatusModel in columnStatusModelList)
            {
                if (columnStatusModel.Ignore)
                {
                    configurationBuilder.ForMember(columnStatusModel.Name, o => o.Ignore());
                }
                else
                {
                    configurationBuilder.ForMember(columnStatusModel.Name, o => o.Order(columnStatusModel.Order));

                    if (String.Equals(columnStatusModel.SortDirection, "ASC", StringComparison.OrdinalIgnoreCase) ||
                        String.Equals(columnStatusModel.SortDirection, "DESC", StringComparison.OrdinalIgnoreCase))
                    {
                        sortFields.Add(columnStatusModel.Name + " " + columnStatusModel.SortDirection);
                    }
                }
            }

            if (sortFields.Any())
            {
                orderData = data.AsQueryable().OrderBy(String.Join(",", sortFields)).ToList();
            }

            return(orderData);
        }