Esempio n. 1
0
        public List <WeeklyAddition> GetAdditionPlanEntryEntries(int additionPlanId, LocationLevelGroupings locationGrouping
                                                                 , VehicleLevelGrouping vehicleGrouping)
        {
            var dbEntities = AdditionPlanEntryFilter.GetAdditionPlanEntries(DataContext, Parameters);

            dbEntities = from apmmv in dbEntities
                         where apmmv.AdditionPlanId == additionPlanId
                         select apmmv;


            var weeklyAdditions = ApplyLocationGroupingToWeeklyAdditions(dbEntities, locationGrouping);

            weeklyAdditions = ApplyVehicleGroupingOnWeeklyAdditions(weeklyAdditions, vehicleGrouping);


            var returned = weeklyAdditions.ToList();

            return(returned);
        }
Esempio n. 2
0
        private void PopulateAdditionTables(AdditionPlanDataAccess dataAccess, LocationLevelGroupings locationGrouping
                                            , VehicleLevelGrouping vehicleGrouping, int scenarioId, AutoGrid gridToUpdate, bool scenarioASelected)
        {
            var additionData = dataAccess.GetAdditionPlanEntryEntries(scenarioId, locationGrouping, vehicleGrouping);

            var additionPlan = dataAccess.GetAdditionPlan(scenarioId);

            var bottomLevelGrouping = locationGrouping == LocationLevelGroupings.Location &&
                                      vehicleGrouping == VehicleLevelGrouping.CarGroup;

            gridToUpdate.HideLastColumn = !bottomLevelGrouping;


            if (scenarioASelected)
            {
                rbAScenario.Text         = additionPlan.Name;
                lblMaxScenASelected.Text = additionPlan.MaxFleetScenarioName;
                lblMinScenASelected.Text = additionPlan.MinComSegScenarioName;
            }
            else
            {
                rbBScenario.Text         = additionPlan.Name;
                lblMaxScenBSelected.Text = additionPlan.MaxFleetScenarioName;
                lblMinScenBSelected.Text = additionPlan.MinComSegScenarioName;
            }

            var additionEntities = from ad in additionData
                                   select new AdditionEntity
            {
                Year         = ad.Year,
                IsoWeek      = ad.IsoWeek,
                CarGroupId   = ad.CarGroupId,
                LocationId   = ad.LocationId,
                CarGroup     = ad.CarGroup,
                Location     = ad.Location,
                Amount       = ad.Amount,
                Contribution = (double)ad.CpU
            };

            gridToUpdate.GridData = additionEntities.ToList();
            gridToUpdate.Visible  = true;
        }
Esempio n. 3
0
        private IQueryable <WeeklyAddition> ApplyVehicleGroupingOnWeeklyAdditions(IQueryable <WeeklyAddition> values, VehicleLevelGrouping vehicleGrouping)
        {
            IQueryable <WeeklyAddition> returned;

            switch (vehicleGrouping)
            {
            case VehicleLevelGrouping.CarGroup:
                returned = from ape in values
                           join cg in DataContext.CAR_GROUPs on ape.CarGroupId equals cg.car_group_id
                           select new WeeklyAddition
                {
                    IsoWeek  = ape.IsoWeek,
                    Year     = ape.Year,
                    Amount   = ape.Amount,
                    CpU      = ape.CpU,
                    CarGroup = cg.car_group1,
                    Location = ape.Location
                };
                break;

            case VehicleLevelGrouping.CarClass:
                returned = from ape in values
                           join cg in DataContext.CAR_GROUPs on ape.CarGroupId equals cg.car_group_id
                           group ape by new { ape.Year, ape.IsoWeek, ape.Location, cg.CAR_CLASS.car_class1 }
                into groupedData
                    select new WeeklyAddition
                {
                    IsoWeek  = groupedData.Key.IsoWeek,
                    Year     = groupedData.Key.Year,
                    Amount   = groupedData.Sum(d => d.Amount),
                    CpU      = groupedData.Sum(d => d.CpU),
                    CarGroup = groupedData.Key.car_class1,
                    Location = groupedData.Key.Location
                };
                break;

            case VehicleLevelGrouping.CarSegement:
                returned = from ape in values
                           join cg in DataContext.CAR_GROUPs on ape.CarGroupId equals cg.car_group_id
                           group ape by new { ape.Year, ape.IsoWeek, ape.Location, cg.CAR_CLASS.CAR_SEGMENT.car_segment1 }
                into groupedData
                    select new WeeklyAddition
                {
                    IsoWeek  = groupedData.Key.IsoWeek,
                    Year     = groupedData.Key.Year,
                    Amount   = groupedData.Sum(d => d.Amount),
                    CpU      = groupedData.Sum(d => d.CpU),
                    CarGroup = groupedData.Key.car_segment1,
                    Location = groupedData.Key.Location
                };
                break;

            default:
                throw new ArgumentOutOfRangeException("vehicleGrouping");
            }
            return(returned);
        }