public void LoadGrid(FleetStatusRow fsd, Dictionary <DictionaryParameter, string> parameters)
        {
            //var data = new List<FleetStatusGridRow> {new FleetStatusGridRow(fsd, false)};
            //gvFleetStatus.DataSource = data;
            //gvFleetStatus.DataBind();


            lblTotalFleet.Text       = string.Format("{0:#,0}", fsd.TotalFleet);
            lblOperationalFleet.Text = string.Format("{0:#,0}", fsd.OperationalFleet);
            lblAvailableFleet.Text   = string.Format("{0:#,0}", fsd.AvailableFleet);
            lblBd.Text      = string.Format("{0:#,0}", fsd.Bd);
            lblWs.Text      = string.Format("{0:#,0}", fsd.Ws);
            lblMm.Text      = string.Format("{0:#,0}", fsd.Mm);
            lblTb.Text      = string.Format("{0:#,0}", fsd.Tb);
            lblTw.Text      = string.Format("{0:#,0}", fsd.Tw);
            lblFs.Text      = string.Format("{0:#,0}", fsd.Fs);
            lblShop.Text    = string.Format("{0:#,0}", fsd.InShop);
            lblRl.Text      = string.Format("{0:#,0}", fsd.Rl);
            lblOverdue.Text = string.Format("{0:#,0} ", fsd.Overdue);


            lblOnRent.Text = string.Format("{0:#,0}", fsd.OnRent);
            lblShop.Text   = string.Format("{0:#,0}", fsd.InShop);
            fsd.SetDivisorType(PercentageDivisorType.OperationalFleet);
            lblShopTotalOverOperFleet.Text = string.Format("{0:P} ", fsd.InShopPercent);
            lblRp.Text = string.Format("{0:#,0}", fsd.Rp);

            fsd.SetDivisorType(PercentageDivisorType.AvailableFleet);
            lblOverdueOverAvailable.Text = string.Format("{0:P} ", fsd.OverduePercent);
            lblTn.Text = string.Format("{0:#,0}", fsd.Tn);

            lblIdle.Text = string.Format("{0:#,0} ", fsd.Idle);
            lblSv.Text   = string.Format("{0:#,0} ", fsd.Sv);

            lblOnRent.Text = string.Format("{0:#,0} ", fsd.OnRent);
            lblSu.Text     = string.Format("{0:#,0} ", fsd.Su);
            lblTc.Text     = string.Format("{0:#,0} ", fsd.Tc);

            fsd.SetDivisorType(PercentageDivisorType.OperationalFleet);
            lblUtiOnRentOperFleetInclOverdue.Text = string.Format("{0:P} ", fsd.UtilInclOverduePercent);
            lblIdleAndSu.Text = string.Format("{0:#,0} ", fsd.Idle + fsd.Su);

            lblIdleAndSuOverAvailableFleet.Text = string.Format("{0:P} ", ((double)(fsd.Idle + fsd.Su)) / fsd.OperationalFleet);
            lblHl.Text = string.Format("{0:#,0} ", fsd.Hl);
            lblUtiOnRentOperFleet.Text = string.Format("{0:P} ", fsd.UtilizationPercent);
            lblHa.Text = string.Format("{0:#,0} ", fsd.Ha);


            PopulateGridParameters(parameters);
        }
        private FleetStatusRow GetFleetCurrentStatusEntry()
        {
            var vehicles = BaseVehicleDataAccess.GetVehicleQueryable(Parameters, DataContext, true, true);
            var dt       = DateTime.Now.Date;

            if (!vehicles.Any())
            {
                return(new FleetStatusRow(PercentageDivisorType.Values, false));
            }
            var returned = new FleetStatusRow(PercentageDivisorType.Values, false)
            {
                TotalFleet = vehicles.Count(),
                Cu         = vehicles.Sum(d => d.LastOperationalStatusId == 2 ? 1 : 0),
                Ha         = vehicles.Sum(d => d.LastOperationalStatusId == 4 ? 1 : 0),
                Hl         = vehicles.Sum(d => d.LastOperationalStatusId == 5 ? 1 : 0),
                Ll         = vehicles.Sum(d => d.LastOperationalStatusId == 6 ? 1 : 0),
                Nc         = vehicles.Sum(d => d.LastOperationalStatusId == 8 ? 1 : 0),
                Pl         = vehicles.Sum(d => d.LastOperationalStatusId == 9 ? 1 : 0),
                Tc         = vehicles.Sum(d => d.LastOperationalStatusId == 16 ? 1 : 0),
                Sv         = vehicles.Sum(d => d.LastOperationalStatusId == 14 ? 1 : 0),
                Ws         = vehicles.Sum(d => d.LastOperationalStatusId == 19 ? 1 : 0),
                Bd         = vehicles.Sum(d => d.LastOperationalStatusId == 1 ? 1 : 0),
                Mm         = vehicles.Sum(d => d.LastOperationalStatusId == 7 ? 1 : 0),
                Tw         = vehicles.Sum(d => d.LastOperationalStatusId == 18 ? 1 : 0),
                Tb         = vehicles.Sum(d => d.LastOperationalStatusId == 15 ? 1 : 0),
                Fs         = vehicles.Sum(d => d.LastOperationalStatusId == 3 ? 1 : 0),
                Rl         = vehicles.Sum(d => d.LastOperationalStatusId == 10 ? 1 : 0),
                Rp         = vehicles.Sum(d => d.LastOperationalStatusId == 11 ? 1 : 0),
                Tn         = vehicles.Sum(d => d.LastOperationalStatusId == 17 ? 1 : 0),
                Idle       = vehicles.Sum(d => (d.LastOperationalStatusId == 12 && d.LastMovementTypeId != 10) ? 1 : 0),
                Su         = vehicles.Sum(d => d.LastOperationalStatusId == 13 ? 1 : 0),
                Overdue    = vehicles.Sum(d => (d.LastOperationalStatusId == 12 && d.LastMovementTypeId == 10 &&
                                                d.ExpectedDateTime < dt) ? 1 : 0)
            };

            return(returned);
        }
Exemple #3
0
        public void LoadChart(FleetStatusRow fsd)
        {
            var    seriesList    = new List <GraphSeries>();
            double startingPoint = 0;
            var    series        = AddWaterfallSeries(AvailabilityTopic.TotalFleet
                                                      , fsd.TotalFleet, fsd.TotalFleet);

            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.Cu
                                        , fsd.TotalFleet - startingPoint, fsd.Cu, false);
            startingPoint += fsd.Cu;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Ha
                                        , fsd.TotalFleet - startingPoint, fsd.Ha, false);
            startingPoint += fsd.Ha;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Hl
                                        , fsd.TotalFleet - startingPoint, fsd.Hl, false);
            startingPoint += fsd.Hl;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Nc
                                        , fsd.TotalFleet - startingPoint, fsd.Nc, false);
            startingPoint += fsd.Nc;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Pl
                                        , fsd.TotalFleet - startingPoint, fsd.Pl, false);
            startingPoint += fsd.Pl;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Tc
                                        , fsd.TotalFleet - startingPoint, fsd.Tc, false);
            startingPoint += fsd.Tc;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Sv
                                        , fsd.TotalFleet - startingPoint, fsd.Sv, false);
            startingPoint += fsd.Sv;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Ws
                                        , fsd.TotalFleet - startingPoint, fsd.Ws, false);
            startingPoint += fsd.Ws;
            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.OperationalFleet
                                        , fsd.OperationalFleet, fsd.OperationalFleet);
            startingPoint = 0;
            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.Bd
                                        , fsd.OperationalFleet - startingPoint, fsd.Bd);
            startingPoint += fsd.Bd;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Mm
                                        , fsd.OperationalFleet - startingPoint, fsd.Mm);
            startingPoint += fsd.Mm;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Tw
                                        , fsd.OperationalFleet - startingPoint, fsd.Tw, false);
            startingPoint += fsd.Tw;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Tb
                                        , fsd.OperationalFleet - startingPoint, fsd.Tb);
            startingPoint += fsd.Tb;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Fs
                                        , fsd.OperationalFleet - startingPoint, fsd.Fs, false);
            startingPoint += fsd.Fs;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Rl
                                        , fsd.OperationalFleet - startingPoint, fsd.Rl, false);
            startingPoint += fsd.Rl;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Rp
                                        , fsd.OperationalFleet - startingPoint, fsd.Rp, false);
            startingPoint += fsd.Rp;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Tn
                                        , fsd.OperationalFleet - startingPoint, fsd.Tn, false);
            startingPoint += fsd.Tn;
            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.AvailableFleet
                                        , fsd.AvailableFleet, fsd.AvailableFleet);
            startingPoint = 0;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Idle
                                        , fsd.AvailableFleet - startingPoint, fsd.Idle);
            startingPoint += fsd.Idle;
            seriesList.Add(series);
            series = AddWaterfallSeries(AvailabilityTopic.Su
                                        , fsd.AvailableFleet - startingPoint, fsd.Su);
            startingPoint += fsd.Su;
            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.Overdue
                                        , fsd.AvailableFleet - startingPoint, fsd.Overdue);
            startingPoint += fsd.Overdue;
            seriesList.Add(series);

            series = AddWaterfallSeries(AvailabilityTopic.OnRent
                                        , fsd.OnRent, fsd.OnRent);
            seriesList.Add(series);


            GraphInformation.SeriesData = seriesList;
        }
        protected FleetStatusRow GroupToSingle(IQueryable <FleetStatusRow> fleetDayKeyGrouping)
        {
            var divisorType = BaseVehicleDataAccess.GetPercentageDivisorTypeFromParameters(Parameters);

            var availabilityDayGrouping =
                BaseVehicleDataAccess.GetAvailabilityDayGroupingFromParameters(Parameters);

            var ld = fleetDayKeyGrouping.ToList();

            if (ld.Count == 0)
            {
                return(new FleetStatusRow(divisorType, true));
            }

            var fsr = new FleetStatusRow(divisorType, true)
            {
                TotalFleet = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.TotalFleet)
                                                     : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.TotalFleet)
                                                     : ld.Min(d => d.TotalFleet),
                Bd = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Bd)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Bd)
                                  : ld.Min(d => d.Bd),
                Cu = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Cu)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Cu)
                                  : ld.Min(d => d.Cu),
                Fs = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Fs)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Fs)
                                  : ld.Min(d => d.Fs),
                Ha = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Ha)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Ha)
                                  : ld.Min(d => d.Ha),
                Hl = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Hl)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Hl)
                                  : ld.Min(d => d.Hl),
                Ll = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Ll)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Ll)
                                  : ld.Min(d => d.Ll),
                Mm = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Mm)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Mm)
                                  : ld.Min(d => d.Mm),
                Nc = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Nc)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Nc)
                                  : ld.Min(d => d.Nc),
                Pl = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Pl)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Pl)
                                  : ld.Min(d => d.Pl),
                Rl = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Rl)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Rl)
                                  : ld.Min(d => d.Rl),
                Rp = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Rp)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Rp)
                                  : ld.Min(d => d.Rp),
                Idle = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Idle)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Idle)
                                  : ld.Min(d => d.Idle),
                Su = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Su)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Su)
                                  : ld.Min(d => d.Su),
                Sv = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Sv)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Sv)
                                  : ld.Min(d => d.Sv),
                Tb = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Tb)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Tb)
                                  : ld.Min(d => d.Tb),
                Tc = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Tc)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Tc)
                                  : ld.Min(d => d.Tc),
                Tn = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Tn)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Tn)
                                  : ld.Min(d => d.Tn),
                Tw = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Tw)
                                 : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Tw)
                                 : ld.Min(d => d.Tw),
                Ws = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Ws)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Ws)
                                  : ld.Min(d => d.Ws),
                Overdue = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.Overdue)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.Overdue)
                                  : ld.Min(d => d.Overdue),
                OperationalFleetDatabaseValue = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.OperationalFleetDatabaseValue)
                                  : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.OperationalFleetDatabaseValue)
                                  : ld.Min(d => d.OperationalFleetDatabaseValue),
                AvailableFleetDatabaseValue = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.AvailableFleetDatabaseValue)
                                : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.AvailableFleetDatabaseValue)
                                : ld.Min(d => d.AvailableFleetDatabaseValue),
                OnRentDatabaseValue = availabilityDayGrouping == AvailabilityGrouping.Average ? (int)ld.Average(d => d.OnRentDatabaseValue)
                                    : availabilityDayGrouping == AvailabilityGrouping.Max ? ld.Max(d => d.OnRentDatabaseValue)
                                    : ld.Min(d => d.OnRentDatabaseValue),
            };



            var returned = fsr;

            return(returned);
        }