Пример #1
0
        public ActionResult ChartYtd(ViewModels.PmsSummary.ChartViewModel viewModel)
        {
            var kpi = _kpiService.GetKpi(new GetKpiRequest {
                Id = viewModel.Id
            });

            if (kpi.YtdFormula == YtdFormula.Sum)
            {
                var artifactDesignerViewModel = new ArtifactDesignerViewModel();
                artifactDesignerViewModel.BarChart = new BarChartViewModel();
                var previewViewModel = new ArtifactPreviewViewModel();
                artifactDesignerViewModel.BarChart.Series.Add(new BarChartViewModel.SeriesViewModel
                {
                    KpiId     = viewModel.Id,
                    Label     = "Achievement",
                    ValueAxis = ValueAxis.KpiActual.ToString()
                });

                var request = new GetCartesianChartDataRequest();
                request.GraphicName   = "Year To Date";
                request.GraphicType   = "barachievement";
                request.HeaderTitle   = "Year To Date";
                request.MeasurementId = viewModel.MeasurementId;
                request.PeriodeType   = PeriodeType.Monthly;
                request.RangeFilter   = RangeFilter.YTD;
                request.Start         = new DateTime(viewModel.Year, 1, 1);
                request.End           = new DateTime(viewModel.Year, 12, 1);
                request.ValueAxis     = ValueAxis.KpiActual;

                artifactDesignerViewModel.BarChart.MapPropertiesToInstance <GetCartesianChartDataRequest>(request);
                var chartData = _artifactService.GetChartData(request);
                previewViewModel.GraphicType             = "barachievement";
                previewViewModel.BarChart                = new BarChartDataViewModel();
                previewViewModel.BarChart.Title          = "Year To Date";
                previewViewModel.BarChart.ValueAxisTitle = _measurementService.GetMeasurement(new GetMeasurementRequest {
                    Id = viewModel.MeasurementId
                }).Name;
                previewViewModel.BarChart.Series     = chartData.Series.MapTo <BarChartDataViewModel.SeriesViewModel>();
                previewViewModel.BarChart.Periodes   = chartData.Periodes;
                previewViewModel.BarChart.SeriesType = chartData.SeriesType;
                previewViewModel.PeriodeType         = "Monthly";
                previewViewModel.TimePeriodes        = chartData.TimePeriodes;
                return(Json(previewViewModel, JsonRequestBehavior.AllowGet));
            }

            return(Content("KPI's Year To Date formula is not SUM type"));
        }
Пример #2
0
        public ActionResult ChartYearly(ViewModels.PmsSummary.ChartViewModel viewModel)
        {
            var artifactDesignerViewModel = new ArtifactDesignerViewModel();

            artifactDesignerViewModel.BarChart = new BarChartViewModel();
            var previewViewModel = new ArtifactPreviewViewModel();

            artifactDesignerViewModel.BarChart.Series.Add(new BarChartViewModel.SeriesViewModel
            {
                KpiId     = viewModel.Id,
                Label     = "Achievement",
                ValueAxis = ValueAxis.KpiActual.ToString()
            });

            var request = new GetCartesianChartDataRequest();

            request.GraphicName   = "Yearly";
            request.GraphicType   = "barachievement";
            request.HeaderTitle   = "Yearly";
            request.MeasurementId = viewModel.MeasurementId;
            request.PeriodeType   = PeriodeType.Yearly;
            request.RangeFilter   = RangeFilter.CurrentYear;
            request.ValueAxis     = ValueAxis.KpiActual;

            artifactDesignerViewModel.BarChart.MapPropertiesToInstance <GetCartesianChartDataRequest>(request);
            var chartData = _artifactService.GetChartData(request);

            previewViewModel.GraphicType             = "barachievement";
            previewViewModel.BarChart                = new BarChartDataViewModel();
            previewViewModel.BarChart.Title          = "Yearly";
            previewViewModel.BarChart.ValueAxisTitle = _measurementService.GetMeasurement(new GetMeasurementRequest {
                Id = viewModel.MeasurementId
            }).Name;
            previewViewModel.BarChart.Series     = chartData.Series.MapTo <BarChartDataViewModel.SeriesViewModel>();
            previewViewModel.BarChart.Periodes   = chartData.Periodes;
            previewViewModel.BarChart.SeriesType = chartData.SeriesType;
            previewViewModel.PeriodeType         = "Monthly";
            previewViewModel.TimePeriodes        = chartData.TimePeriodes;
            return(Json(previewViewModel, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public ActionResult View(int id, string secretNumber)
        {
            var artifactResp = _artifactService.GetArtifact(new GetArtifactRequest {
                Id = id
            });
            var previewViewModel = new ArtifactPreviewViewModel();

            previewViewModel.FractionScale    = artifactResp.FractionScale;
            previewViewModel.MaxFractionScale = artifactResp.MaxFractionScale;
            switch (artifactResp.GraphicType)
            {
            case "line":
            {
                var chartData        = _artifactService.GetChartData(artifactResp.MapTo <GetCartesianChartDataRequest>());
                var reportHighlights = _highlightService.GetReportHighlights(new GetReportHighlightsRequest
                    {
                        TimePeriodes = chartData.TimePeriodes,
                        Type         = "Overall",
                        PeriodeType  = artifactResp.PeriodeType
                    });
                previewViewModel.PeriodeType              = artifactResp.PeriodeType.ToString();
                previewViewModel.TimePeriodes             = chartData.TimePeriodes;
                previewViewModel.GraphicType              = artifactResp.GraphicType;
                previewViewModel.Highlights               = reportHighlights.Highlights.MapTo <ArtifactPreviewViewModel.HighlightViewModel>();
                previewViewModel.LineChart                = new LineChartDataViewModel();
                previewViewModel.LineChart.Title          = artifactResp.HeaderTitle;
                previewViewModel.LineChart.Subtitle       = chartData.Subtitle;
                previewViewModel.LineChart.ValueAxisTitle = artifactResp.Measurement;
                previewViewModel.LineChart.Series         = chartData.Series.MapTo <LineChartDataViewModel.SeriesViewModel>();
                previewViewModel.LineChart.Periodes       = chartData.Periodes;
            }
            break;

            case "area":
            {
                var chartData        = _artifactService.GetChartData(artifactResp.MapTo <GetCartesianChartDataRequest>());
                var reportHighlights = _highlightService.GetReportHighlights(new GetReportHighlightsRequest
                    {
                        TimePeriodes = chartData.TimePeriodes,
                        Type         = "Overall",
                        PeriodeType  = artifactResp.PeriodeType
                    });
                previewViewModel.PeriodeType              = artifactResp.PeriodeType.ToString();
                previewViewModel.TimePeriodes             = chartData.TimePeriodes;
                previewViewModel.Highlights               = reportHighlights.Highlights.MapTo <ArtifactPreviewViewModel.HighlightViewModel>();
                previewViewModel.GraphicType              = artifactResp.GraphicType;
                previewViewModel.AreaChart                = new AreaChartDataViewModel();
                previewViewModel.AreaChart.Title          = artifactResp.HeaderTitle;
                previewViewModel.AreaChart.Subtitle       = chartData.Subtitle;
                previewViewModel.AreaChart.ValueAxisTitle = artifactResp.Measurement;
                previewViewModel.AreaChart.Series         = chartData.Series.MapTo <AreaChartDataViewModel.SeriesViewModel>();
                previewViewModel.AreaChart.Periodes       = chartData.Periodes;
            }
            break;

            case "multiaxis":
            {
                var chartData        = _artifactService.GetMultiaxisChartData(artifactResp.MapTo <GetMultiaxisChartDataRequest>());
                var reportHighlights = _highlightService.GetReportHighlights(new GetReportHighlightsRequest
                    {
                        TimePeriodes = chartData.TimePeriodes,
                        Type         = "Overall",
                        PeriodeType  = artifactResp.PeriodeType
                    });
                previewViewModel.PeriodeType          = artifactResp.PeriodeType.ToString();
                previewViewModel.TimePeriodes         = chartData.TimePeriodes;
                previewViewModel.Highlights           = reportHighlights.Highlights.MapTo <ArtifactPreviewViewModel.HighlightViewModel>();
                previewViewModel.GraphicType          = artifactResp.GraphicType;
                previewViewModel.MultiaxisChart       = chartData.MapTo <MultiaxisChartDataViewModel>();
                previewViewModel.MultiaxisChart.Title = artifactResp.HeaderTitle;
            }
            break;

            case "combo":
            {
                var chartData        = _artifactService.GetComboChartData(artifactResp.MapTo <GetComboChartDataRequest>());
                var reportHighlights = _highlightService.GetReportHighlights(new GetReportHighlightsRequest
                    {
                        TimePeriodes = chartData.TimePeriodes,
                        Type         = "Overall",
                        PeriodeType  = artifactResp.PeriodeType
                    });
                previewViewModel.PeriodeType      = artifactResp.PeriodeType.ToString();
                previewViewModel.TimePeriodes     = chartData.TimePeriodes;
                previewViewModel.Highlights       = reportHighlights.Highlights.MapTo <ArtifactPreviewViewModel.HighlightViewModel>();
                previewViewModel.GraphicType      = artifactResp.GraphicType;
                previewViewModel.ComboChart       = chartData.MapTo <ComboChartDataViewModel>();
                previewViewModel.ComboChart.Title = artifactResp.HeaderTitle;
            }
            break;

            case "speedometer":
            {
                var chartData = _artifactService.GetSpeedometerChartData(artifactResp.MapTo <GetSpeedometerChartDataRequest>());
                previewViewModel.GraphicType                     = artifactResp.GraphicType;
                previewViewModel.SpeedometerChart                = new SpeedometerChartDataViewModel();
                previewViewModel.SpeedometerChart.Title          = artifactResp.HeaderTitle;
                previewViewModel.SpeedometerChart.Subtitle       = chartData.Subtitle;
                previewViewModel.SpeedometerChart.ValueAxisTitle = artifactResp.Measurement;
                previewViewModel.SpeedometerChart.Series         = chartData.Series.MapTo <SpeedometerChartDataViewModel.SeriesViewModel>();
                previewViewModel.SpeedometerChart.PlotBands      = chartData.PlotBands.MapTo <SpeedometerChartDataViewModel.PlotBandViewModel>();
            }
            break;

            case "trafficlight":
            {
                var chartData = _artifactService.GetTrafficLightChartData(artifactResp.MapTo <GetTrafficLightChartDataRequest>());
                previewViewModel.GraphicType                      = artifactResp.GraphicType;
                previewViewModel.TrafficLightChart                = new TrafficLightChartDataViewModel();
                previewViewModel.TrafficLightChart.Title          = artifactResp.HeaderTitle;
                previewViewModel.TrafficLightChart.Subtitle       = chartData.Subtitle;
                previewViewModel.TrafficLightChart.ValueAxisTitle = artifactResp.Measurement;
                previewViewModel.TrafficLightChart.Series         = chartData.Series.MapTo <TrafficLightChartDataViewModel.SeriesViewModel>();
                previewViewModel.TrafficLightChart.PlotBands      = chartData.PlotBands.MapTo <TrafficLightChartDataViewModel.PlotBandViewModel>();
            }
            break;

            case "tabular":
            {
                var chartData = _artifactService.GetTabularData(artifactResp.MapTo <GetTabularDataRequest>());
                previewViewModel.GraphicType = artifactResp.GraphicType;
                previewViewModel.Tabular     = new TabularDataViewModel();
                chartData.MapPropertiesToInstance <TabularDataViewModel>(previewViewModel.Tabular);
                previewViewModel.Tabular.Title = artifactResp.HeaderTitle;
                //previewViewModel.SpeedometerChart.Series = chartData.Series.MapTo<SpeedometerChartDataViewModel.SeriesViewModel>();
                //previewViewModel.SpeedometerChart.PlotBands = chartData.PlotBands.MapTo<SpeedometerChartDataViewModel.PlotBandViewModel>();
            }
            break;

            case "tank":
            {
                var chartData = _artifactService.GetTankData(artifactResp.MapTo <GetTankDataRequest>());
                previewViewModel.GraphicType = artifactResp.GraphicType;
                previewViewModel.Tank        = new TankDataViewModel();
                chartData.MapPropertiesToInstance <TankDataViewModel>(previewViewModel.Tank);
                previewViewModel.Tank.Title    = artifactResp.HeaderTitle;
                previewViewModel.Tank.Subtitle = chartData.Subtitle;
                previewViewModel.Tank.Id       = artifactResp.Tank.Id;
                //previewViewModel.SpeedometerChart.Series = chartData.Series.MapTo<SpeedometerChartDataViewModel.SeriesViewModel>();
                //previewViewModel.SpeedometerChart.PlotBands = chartData.PlotBands.MapTo<SpeedometerChartDataViewModel.PlotBandViewModel>();
            }
            break;

            case "pie":
            {
                var chartData = _artifactService.GetPieData(artifactResp.MapTo <GetPieDataRequest>());
                previewViewModel.GraphicType    = artifactResp.GraphicType;
                previewViewModel.Pie            = chartData.MapTo <PieDataViewModel>();
                previewViewModel.Pie.Title      = artifactResp.HeaderTitle;
                previewViewModel.Pie.Subtitle   = chartData.Subtitle;
                previewViewModel.Pie.Is3D       = artifactResp.Is3D;
                previewViewModel.Pie.ShowLegend = artifactResp.ShowLegend;
            }
            break;

            default:
            {
                var chartData = _artifactService.GetChartData(artifactResp.MapTo <GetCartesianChartDataRequest>());
                if (!artifactResp.AsNetbackChart)
                {
                    var reportHighlights = _highlightService.GetReportHighlights(new GetReportHighlightsRequest
                        {
                            TimePeriodes = chartData.TimePeriodes,
                            Type         = "Overall",
                            PeriodeType  = artifactResp.PeriodeType
                        });
                    previewViewModel.Highlights = reportHighlights.Highlights.MapTo <ArtifactPreviewViewModel.HighlightViewModel>();
                }
                previewViewModel.PeriodeType             = artifactResp.PeriodeType.ToString();
                previewViewModel.TimePeriodes            = chartData.TimePeriodes;
                previewViewModel.GraphicType             = artifactResp.GraphicType;
                previewViewModel.BarChart                = new BarChartDataViewModel();
                previewViewModel.BarChart.Title          = artifactResp.HeaderTitle;
                previewViewModel.BarChart.Subtitle       = chartData.Subtitle;
                previewViewModel.BarChart.ValueAxisTitle = artifactResp.Measurement;         //.GetMeasurement(new GetMeasurementRequest { Id = viewModel.MeasurementId }).Name;
                previewViewModel.BarChart.Series         = chartData.Series.MapTo <BarChartDataViewModel.SeriesViewModel>();
                previewViewModel.BarChart.Periodes       = chartData.Periodes;
                previewViewModel.BarChart.SeriesType     = chartData.SeriesType;
            }
            break;
            }
            return(Json(previewViewModel, JsonRequestBehavior.AllowGet));
        }