Exemple #1
0
        internal static string GetBenchmarkCsvData(Dictionary <string, string> parameters, bool constrainedForecast, int siteGroup, int fleetGroup)
        {
            using (var dataContext = new MarsDBDataContext(MarsConnection.ConnectionString))
            {
                var restrictedData = GenericSizingDataAccess.GetBenchmarkRawData(parameters, dataContext);

                var fullDataSet = GetJoinedExcelData(dataContext, restrictedData, constrainedForecast);
                var csvData     = new StringBuilder();

                csvData.Append(GeForecastCsvHeader(siteGroup, fleetGroup, constrainedForecast));

                var orderedData = fullDataSet.GroupByMany(CsvExportMethods.GetGroupingColumns(siteGroup, fleetGroup)).OrderBy(d => d.Key);

                var keyList = new List <string>();
                foreach (var gr in orderedData)
                {
                    CheckSubGroup(gr, keyList, csvData);
                }
                return(csvData.ToString());
            }
        }
Exemple #2
0
        internal static List <GraphSeries> GetBenchMarkGraphingData(Dictionary <string, string> parameters, bool constrainedForecast)
        {
            using (var dataContext = new MarsDBDataContext(MarsConnection.ConnectionString))
            {
                var restrictedData = GenericSizingDataAccess.GetBenchmarkRawData(parameters, dataContext);
                var groupedData    = from rd in restrictedData
                                     group rd by new { RepDate = rd.REP_DATE }
                into g
                orderby g.Key.RepDate ascending
                    select new BenchmarkGraphDataHolder
                {
                    ReportDate     = g.Key.RepDate,
                    CurrentOnRent  = g.Sum(d => d.CURRENT_ONRENT) ?? 0,
                    OnRentLastYear = g.Sum(d => d.ONRENT_LY) ?? 0,
                    FrozenValue    = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED) ?? 0,                    // altered by Gavin
                    Week1          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK1) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK1) ?? 0,
                    Week2          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK2) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK2) ?? 0,
                    Week3          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK3) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK3) ?? 0,
                    Week4          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK4) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK4) ?? 0,
                    Week5          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK5) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK5) ?? 0,
                    Week6          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK6) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK6) ?? 0,
                    Week7          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK7) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK7) ?? 0,
                    Week8          = constrainedForecast ? g.Sum(d => d.CMS_CONSTRAINED_WK8) ?? 0 : g.Sum(d => d.CMS_UNCONSTRAINED_WK8) ?? 0,
                    TopDown        = constrainedForecast ? g.Sum(p => p.ADJUSTMENT_TD) ?? 0 : g.Sum(p => p.ADJUSTMENT_TD) ?? 0
                };

                var dateTimes      = new List <object>();
                var currentOnRent  = new List <double>();
                var onRentLastYear = new List <double>();
                var frozenValue    = new List <double>();
                var week1          = new List <double>();
                var week2          = new List <double>();
                var week3          = new List <double>();
                var week4          = new List <double>();
                var week5          = new List <double>();
                var week6          = new List <double>();
                var week7          = new List <double>();
                var week8          = new List <double>();
                var topDown        = new List <double>();


                foreach (var ft in groupedData)
                {
                    dateTimes.Add(ft.ReportDate);

                    currentOnRent.AddPreviousIfZero((double)ft.CurrentOnRent);
                    onRentLastYear.AddPreviousIfZero((double)ft.OnRentLastYear);
                    frozenValue.AddPreviousIfZero((double)ft.FrozenValue);
                    week1.AddPreviousIfZero((double)ft.Week1);
                    week2.AddPreviousIfZero((double)ft.Week2);
                    week3.AddPreviousIfZero((double)ft.Week3);
                    week4.AddPreviousIfZero((double)ft.Week4);
                    week5.AddPreviousIfZero((double)ft.Week5);
                    week6.AddPreviousIfZero((double)ft.Week6);
                    week7.AddPreviousIfZero((double)ft.Week7);
                    week8.AddPreviousIfZero((double)ft.Week8);
                    topDown.AddPreviousIfZero((double)ft.TopDown);
                }
                var colourList     = new List <Color>();
                var startingColour = Color.Orange;
                colourList.Add(startingColour);

                for (var i = 0; i < 8; i++)
                {
                    colourList.Add(Color.FromArgb(startingColour.R - i * 20, startingColour.G - i * 20, startingColour.B));
                }

                var seriesInformation = new List <GraphSeries>
                {
                    new GraphSeries("On Rent")
                    {
                        GraphColour = Color.Green, Xvalue = dateTimes, Yvalue = currentOnRent
                    },
                    new GraphSeries("On Rent LY")
                    {
                        GraphColour = Color.DimGray, Xvalue = dateTimes, Yvalue = onRentLastYear
                    },
                    new GraphSeries(constrainedForecast ? "Constrained" : "Unconstrained")
                    {
                        GraphColour = constrainedForecast ? Color.MidnightBlue : Color.CornflowerBlue,
                        Xvalue      = dateTimes, Yvalue = frozenValue
                    },
                    new GraphSeries("Week 1")
                    {
                        GraphColour = colourList[7], Xvalue = dateTimes, Yvalue = week1
                    },
                    new GraphSeries("Week 2")
                    {
                        GraphColour = colourList[6], Xvalue = dateTimes, Yvalue = week2
                    },
                    new GraphSeries("Week 3")
                    {
                        GraphColour = colourList[5], Xvalue = dateTimes, Yvalue = week3
                    },
                    new GraphSeries("Week 4")
                    {
                        GraphColour = colourList[4], Xvalue = dateTimes, Yvalue = week4
                    },
                    new GraphSeries("Week 5")
                    {
                        GraphColour = colourList[3], Xvalue = dateTimes, Yvalue = week5
                    },
                    new GraphSeries("Week 6")
                    {
                        GraphColour = colourList[2], Xvalue = dateTimes, Yvalue = week6
                    },
                    new GraphSeries("Week 7")
                    {
                        GraphColour = colourList[1], Xvalue = dateTimes, Yvalue = week7
                    },
                    new GraphSeries("Week 8")
                    {
                        GraphColour = colourList[0], Xvalue = dateTimes, Yvalue = week8
                    },
                    new GraphSeries("Top Down")
                    {
                        GraphColour = Color.SandyBrown, Xvalue = dateTimes, Yvalue = topDown
                    }
                };
                return(seriesInformation);
            }
        }