Exemple #1
0
        protected override DriverResult Display(DataReportViewerPart part, string displayType, dynamic shapeHelper)
        {
            if (part.Record.Report == null)
            {
                return(null);
            }

            if (displayType == "Detail")
            {
                var report       = this.reportRepository.Table.FirstOrDefault(c => c.Id == part.Record.Report.Id);
                var partSettings = part.Settings.GetModel <DataReportViewerPartSettings>();

                if (report == null)
                {
                    return(null);
                }

                IEnumerable <AggregationResult> reportData = null;
                int count = 0;
                if (string.IsNullOrWhiteSpace(report.GroupByCategory))
                {
                    var multiColumn = part.Record.ChartType == ((int)ChartTypes.SimpleTable);
                    reportData = reportManger.RunHqlReport(report, part.ContentItem, multiColumn);
                    count      = reportData.Count();
                }
                else
                {
                    reportData = reportManger.RunReport(report, part.ContentItem);
                    count      = reportManger.GetCount(report, part.ContentItem);
                }

                // colors
                List <string> colors  = new List <string>();
                string[]      palette = ColorsSettings.ChartColors;
                if (part.Record.ColorStyle == (int)ColorStyleValues.Light)
                {
                    palette = ColorsSettings.ChartColorsLight;
                }
                else if (part.Record.ColorStyle == (int)ColorStyleValues.Dark)
                {
                    palette = ColorsSettings.ChartColorsDark;
                }
                if (part.Record.StartColor == 0)
                {
                    colors.AddRange(palette);
                }
                else
                {
                    colors.AddRange(palette.Skip(part.Record.StartColor));
                    colors.AddRange(palette.Take(part.Record.StartColor));
                }

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var model = new DataReportViewerViewModel
                {
                    TotalCount        = count,
                    ReportTitle       = part.Record.Report.Title,
                    JsonData          = serializer.Serialize(reportData.Select(c => new object[] { c.Label, c.AggregationValue }).ToArray()),
                    Data              = reportData.ToList(),
                    ChartCssClass     = partSettings.ChartTagCssClass,
                    ContainerCssClass = partSettings.ContainerTagCssClass,
                    ColorsArray       = serializer.Serialize(colors),
                    HtmlId            = part.Record.Id
                };

                if (part.Record.ChartType == (int)ChartTypes.PieChart)
                {
                    return(ContentShape("Parts_DataReportViewer_PieChart",
                                        () => shapeHelper.Parts_DataReportViewer_PieChart(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.SimpleList)
                {
                    return(ContentShape("Parts_DataReportViewer_SimpleList",
                                        () => shapeHelper.Parts_DataReportViewer_SimpleList(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.Donut)
                {
                    return(ContentShape("Parts_DataReportViewer_Donut",
                                        () => shapeHelper.Parts_DataReportViewer_Donut(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.Histogram)
                {
                    return(ContentShape("Parts_DataReportViewer_Histogram",
                                        () => shapeHelper.Parts_DataReportViewer_Histogram(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.LineChart)
                {
                    return(ContentShape("Parts_DataReportViewer_LineChart",
                                        () => shapeHelper.Parts_DataReportViewer_LineChart(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.HorizontalBars)
                {
                    return(ContentShape("Parts_DataReportViewer_HorizontalBars",
                                        () => shapeHelper.Parts_DataReportViewer_HorizontalBars(Model: model)));
                }
                else if (part.Record.ChartType == (int)ChartTypes.SimpleTable)
                {
                    return(ContentShape("Parts_DataReportViewer_SimpleTable",
                                        () => shapeHelper.Parts_DataReportViewer_SimpleTable(Model: model)));
                }
                else
                {
                    return(ContentShape("Parts_DataReportViewer",
                                        () => shapeHelper.Parts_DataReportViewer_Summary(
                                            Model: new DataReportViewerViewModel {
                        ReportTitle = part.Record.Report.Title
                    }
                                            )));
                }
            }
            else
            {
                return(ContentShape("Parts_DataReportViewer",
                                    () => shapeHelper.Parts_DataReportViewer_Summary(
                                        Model: new DataReportViewerViewModel {
                    ReportTitle = part.Record.Report.Title
                }
                                        )));
            }
        }
        protected override DriverResult Display(DataReportViewerPart part, string displayType, dynamic shapeHelper)
        {
            if (part.Record.Report == null)
            {
                return(null);
            }

            if (displayType == "Detail")
            {
                if (part.Record.Report.ChartType != (int)ChartTypes.PieChart &&
                    part.Record.Report.ChartType != (int)ChartTypes.SimpleList)
                {
                    return(null);
                }

                var report = this.reportRepository.Table.FirstOrDefault(c => c.Id == part.Record.Report.Id);

                if (report == null)
                {
                    return(null);
                }

                var reportData = this.reportManger.RunReport(report, part.ContentItem);
                int count      = this.reportManger.GetCount(report, part.ContentItem);

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                dynamic jsonData = new ExpandoObject();
                jsonData.Data  = reportData.Items.Select(c => new { Label = c.Label, Value = c.AggregationValue }).ToArray();
                jsonData.Title = part.Record.Report.Title;
                var model = new DataReportViewerViewModel
                {
                    TotalCount        = count,
                    ChartType         = part.Record.Report.ChartType,
                    ReportTitle       = part.Record.Report.Title,
                    JsonData          = JsonConvert.SerializeObject(jsonData),
                    Data              = reportData.Items.ToList(),
                    ChartCssClass     = part.Record.ChartTagCssClass,
                    ContainerCssClass = part.Record.ContainerTagCssClass
                };

                if (report.ChartType == (int)ChartTypes.PieChart)
                {
                    return(ContentShape("Parts_DataReportViewer_PieChart",
                                        () => shapeHelper.Parts_DataReportViewer_PieChart(
                                            Model: model
                                            )));
                }
                else if (report.ChartType == (int)ChartTypes.SimpleList)
                {
                    return(ContentShape("Parts_DataReportViewer_SimpleList",
                                        () => shapeHelper.Parts_DataReportViewer_SimpleList(
                                            Model: model
                                            )));
                }
                else
                {
                    return(ContentShape("Parts_DataReportViewer_Summary",
                                        () => shapeHelper.Parts_DataReportViewer_Summary(
                                            Model: new DataReportViewerViewModel {
                        ReportTitle = part.Record.Report.Title
                    }
                                            )));
                }
            }
            else
            {
                return(ContentShape("Parts_DataReportViewer_Summary",
                                    () => shapeHelper.Parts_DataReportViewer_Summary(
                                        Model: new DataReportViewerViewModel {
                    ReportTitle = part.Record.Report.Title
                }
                                        )));
            }
        }