コード例 #1
0
ファイル: KPI.aspx.cs プロジェクト: JaviDublin/MARProjects
        protected void Page_PreRender(object sender, EventArgs e)
        {
            DataType selectedTimeZoneType;

            Enum.TryParse(GeneralParams.ReportTypeControl.SelectedTimeZone.SelectedValue, out selectedTimeZoneType);
            FutureTrendDataType futureTrendDataType;

            Enum.TryParse(GeneralParams.ReportTypeControl.SelectedForecastType.SelectedValue, out futureTrendDataType);


            GeneralParams.DynamicReportParametersControl.DateRangePickerControl.SetDates(selectedTimeZoneType == DataType.FrozenZone);
            if (GraphInformation.RefreshData)
            {
                var fromDate = DateTime.Parse(GeneralParams.SelectedParameters.ContainsKey(ParameterNames.FromDate) ? GeneralParams.SelectedParameters[ParameterNames.FromDate] : null);
                var toDate   = DateTime.Parse(GeneralParams.SelectedParameters.ContainsKey(ParameterNames.ToDate) ? GeneralParams.SelectedParameters[ParameterNames.ToDate] : null);

                var kpiTypeSelection  = int.Parse(GeneralParams.ReportTypeControl.SelectedKpi.Value);
                var kpiShowPercentage = GeneralParams.ReportTypeControl.ShowKpiAsPercentage;


                var kpiType = kpiTypeSelection == 1
                              ? KpiCalculationType.OperationalUtilization
                              : kpiTypeSelection == 2 && kpiShowPercentage
                                    ? KpiCalculationType.IdleFleetPercentage
                                    : KpiCalculationType.IdleFleet;


                if (!kpiShowPercentage && kpiTypeSelection == 2)
                {
                    GraphInformation.LabelFormat            = "#,##0";
                    GraphInformation.DataPointsYAxisTooltip = "#VALY{0}";
                    GraphInformation.YAxisNumberFormat      = "#,##0";
                }
                else
                {
                    GraphInformation.LabelFormat            = "0%";
                    GraphInformation.DataPointsYAxisTooltip = "#VALY{0%}";
                    GraphInformation.YAxisNumberFormat      = "0%";
                }

                var    doesDateRangeSpanToday = fromDate.Date <DateTime.Now.Date && toDate.Date> DateTime.Now.Date;
                string timeZoneTitle;
                if (doesDateRangeSpanToday)
                {
                    var selectedParameters = GeneralParams.SelectedParameters;

                    selectedParameters[ParameterNames.ToDate] = DateTime.Now.AddDays(-1).Date.ToString();
                    var pastSeriesData = KpiDataAccess.GetHistoricalKpiData(selectedParameters, kpiType);
                    selectedParameters[ParameterNames.FromDate] = DateTime.Now.Date.ToString();
                    selectedParameters[ParameterNames.ToDate]   = toDate.ToString();
                    var futureSeriesData = KpiDataAccess.GetKpiDataNew(selectedParameters, kpiType, futureTrendDataType);

                    var count = 0;
                    pastSeriesData[0].Xvalue.AddRange(futureSeriesData[0].Xvalue);
                    foreach (var sd in futureSeriesData)
                    {
                        pastSeriesData[count].Yvalue.AddRange(sd.Yvalue);
                        count++;
                    }
                    selectedParameters[ParameterNames.FromDate] = fromDate.ToString();
                    selectedParameters[ParameterNames.ToDate]   = toDate.ToString();


                    GraphInformation.SeriesData = pastSeriesData;
                    timeZoneTitle = string.Format("{0} ({2}) & {1} ", GeneralParams.ReportTypeControl.SelectedTimeZone.Items[0].Text,
                                                  GeneralParams.ReportTypeControl.SelectedTimeZone.Items[1].Text,
                                                  GeneralParams.ReportTypeControl.SelectedForecastType.SelectedItem.Text);
                }
                else
                {
                    GraphInformation.SeriesData = selectedTimeZoneType == DataType.FrozenZone
                            ? KpiDataAccess.GetHistoricalKpiData(GeneralParams.SelectedParameters, kpiType)
                            : KpiDataAccess.GetKpiDataNew(GeneralParams.SelectedParameters, kpiType, futureTrendDataType);

                    timeZoneTitle = GeneralParams.ReportTypeControl.SelectedTimeZone.SelectedItem.Text;
                }
                KpiDataAccess.RecalculateTrendMinMaxLines(GraphInformation.SeriesData);

                GraphInformation.DataDate = ParameterDataAccess.GetLastDateFromCmsForecast();


                GraphInformation.TitleAdditional = string.Format("{0} - {1} {2}",
                                                                 timeZoneTitle,
                                                                 GeneralParams.ReportTypeControl.SelectedKpi.Text,
                                                                 kpiShowPercentage ? "%" : "");
                GraphInformation.CalculateYEntriesCount();

                GraphInformation.RefreshData = false;
            }
        }
コード例 #2
0
ファイル: KPI.aspx.cs プロジェクト: JaviDublin/MARProjects
        protected override bool OnBubbleEvent(object source, EventArgs args)
        {
            var handled = false;

            if (args is RefreshGraphEventArgs)
            {
                GraphInformation.RefreshData = true;
                handled = true;
            }

            if (args is ExportToExcelEventArgs)
            {
                var kpiTypeSelection  = int.Parse(GeneralParams.ReportTypeControl.SelectedKpi.Value);
                var kpiShowPercentage = GeneralParams.ReportTypeControl.ShowKpiAsPercentage;

                FutureTrendDataType futureTrendDataType;
                Enum.TryParse(GeneralParams.ReportTypeControl.SelectedForecastType.SelectedValue, out futureTrendDataType);
                DataType selectedTimeZoneType;
                Enum.TryParse(GeneralParams.ReportTypeControl.SelectedTimeZone.SelectedValue, out selectedTimeZoneType);

                GeneralParams.DynamicReportParametersControl.DateRangePickerControl.SetDates(selectedTimeZoneType == DataType.FrozenZone);

                var kpiType = kpiTypeSelection == 1
                      ? KpiCalculationType.OperationalUtilization
                      : kpiTypeSelection == 2 && kpiShowPercentage
                            ? KpiCalculationType.IdleFleetPercentage
                            : KpiCalculationType.IdleFleet;

                var fromDate = DateTime.Parse(GeneralParams.SelectedParameters.ContainsKey(ParameterNames.FromDate) ? GeneralParams.SelectedParameters[ParameterNames.FromDate] : null);
                var toDate   = DateTime.Parse(GeneralParams.SelectedParameters.ContainsKey(ParameterNames.ToDate) ? GeneralParams.SelectedParameters[ParameterNames.ToDate] : null);

                var doesDateRangeSpanToday = fromDate.Date <DateTime.Now.Date && toDate.Date> DateTime.Now.Date;


                var csvData = new StringBuilder();
                csvData.AppendLine(KpiDataAccess.GetKpiCsvHeader(GeneralParams.SelectedParameters, kpiType, futureTrendDataType));


                if (doesDateRangeSpanToday)
                {
                    var selectedParameters = GeneralParams.SelectedParameters;

                    selectedParameters[ParameterNames.ToDate] = DateTime.Now.AddDays(-1).Date.ToString();
                    csvData.Append(KpiDataAccess.GetFrozenZoneKpiExcelData(selectedParameters, kpiType, futureTrendDataType));
                    selectedParameters[ParameterNames.FromDate] = DateTime.Now.Date.ToString();
                    selectedParameters[ParameterNames.ToDate]   = toDate.ToString();
                    csvData.Append(KpiDataAccess.GetKpiExcelData(selectedParameters, kpiType, futureTrendDataType));
                    selectedParameters[ParameterNames.FromDate] = fromDate.ToString();
                    selectedParameters[ParameterNames.ToDate]   = toDate.ToString();
                }
                else
                {
                    csvData.Append(selectedTimeZoneType == DataType.DailyChanging
                                       ? KpiDataAccess.GetKpiExcelData(GeneralParams.SelectedParameters, kpiType,
                                                                       futureTrendDataType)
                                       : KpiDataAccess.GetFrozenZoneKpiExcelData(GeneralParams.SelectedParameters,
                                                                                 kpiType, futureTrendDataType));
                }

                Session["ExportData"]     = csvData.ToString();
                Session["ExportFileName"] = "KpiExport";

                handled = true;
            }

            return(handled);
        }