Exemple #1
0
        internal static List <GraphSeries> GetKpiDataNew(Dictionary <string, string> parameters, KpiCalculationType kpiType, FutureTrendDataType futureTrendDataType)
        {
            using (var dataContext = new MarsDBDataContext(MarsConnection.ConnectionString))
            {
                //var rawData = GetRawKpiDataNew(dataContext, parameters, futureTrendDataType);
                var rawData = GenericSizingDataAccess.GetKpiRawData(dataContext, parameters, futureTrendDataType);

                var kpiGraphingData = from gd in rawData
                                      orderby gd.ReportDate ascending
                                      select new KpiGraphDataHolder
                {
                    ReportDate = gd.ReportDate,
                    Kpi        = kpiType == KpiCalculationType.OperationalUtilization ? gd.ExpectedFleet == 0 ? 0 :
                                 gd.Forecast / gd.ExpectedFleet :
                                 kpiType == KpiCalculationType.IdleFleetPercentage ? gd.ExpectedFleet == 0 ? 0 :
                                 (gd.ExpectedFleet - gd.Forecast) / gd.ExpectedFleet :
                                 kpiType == KpiCalculationType.IdleFleet ?
                                 gd.ExpectedFleet - gd.Forecast : 0
                };



                return(GraphKpiData(kpiGraphingData));
            }
        }
Exemple #2
0
        internal static string GetKpiExcelData(Dictionary <string, string> parameters, KpiCalculationType kpiType, FutureTrendDataType futureTrendDataType)
        {
            var csvData = new StringBuilder();

            using (var dataContext = new MarsDBDataContext(MarsConnection.ConnectionString))
            {
                var additionalColumns = GenerateAdditionalColumns(parameters, dataContext);

                //var rawData = GetRawKpiDataNew(dataContext, parameters, futureTrendDataType, true);
                var rawData = GenericSizingDataAccess.GetKpiRawData(dataContext, parameters, futureTrendDataType);

                var groupedData = from rw in rawData
                                  select new KpiExcelDataHolder
                {
                    ReportDate = rw.ReportDate,
                    Country    = rw.Country,
                    Kpi        = kpiType == KpiCalculationType.OperationalUtilization ? rw.ExpectedFleet == 0 ? 0 :
                                 (rw.Forecast / rw.ExpectedFleet) * 100 :
                                 kpiType == KpiCalculationType.IdleFleetPercentage ? rw.ExpectedFleet == 0 ? 0 :
                                 (rw.ExpectedFleet - rw.Forecast) * 100 / rw.ExpectedFleet :
                                 kpiType == KpiCalculationType.IdleFleet ?
                                 rw.ExpectedFleet - rw.Forecast : 0
                };


                var excelData = from gd in groupedData.OrderBy(d => d.ReportDate).ThenBy(d => d.Country)
                                select string.Format("{0},{1},{2}{3}\n", gd.ReportDate.Value.ToShortDateString(), gd.Country, additionalColumns,
                                                     Math.Round(gd.Kpi, 0, MidpointRounding.AwayFromZero));

                excelData.ToList().ForEach(d => csvData.Append(d.ToString()));

                return(csvData.ToString());
            }
        }