Esempio n. 1
0
        public ActionResult Find(TransportModel transportModel)
        {
            var origin = _repository.Query<Destination>().Where(o => o.Name == transportModel.Origin).SingleOrDefault();
            var destination = _repository.Query<Destination>().Where(d => d.Name == transportModel.Destination).SingleOrDefault();

            var cargoDefinition = new CargoDefinition(transportModel.Weight);
            var transportUnit = new TransportUnit(origin, destination, transportModel.MinPickupTime, transportModel.MaxDeliveryTime, cargoDefinition);

            // borde inte kunden endast vara intressant när det ska bokas något?
            var customer = _repository.Query<Customer>().Where(c => c.CompanyName == "DHL").SingleOrDefault();

            var transportRequest = new TransportRequest(customer, transportUnit);

            _transportOptimizationService.LoadData(transportRequest.MinPickupTime, transportRequest.MaxDeliveryTime);
            _transportOptimizationService.MinimizeCost(transportRequest.TransportUnits, 3);

            var model = new RouteModel
                            {
                                Packages = transportModel.Packages,
                                //PackageType = transportModel.PackageTypes.Where(pt => pt.Value == transportModel.PackageType.ToString()).Select(pt => pt.Text).Single(),
                                //DeliveryInformation = transportModel.DateRestrictionTypes.Where(dr => dr.Value == transportModel.DateRestrictionType.ToString()).Select(dr => dr.Text).Single() + " " + transportModel.Date.Value.ToString("yyyy-MM-dd") + " " + transportModel.Time.ToString("00") + ":00",
                                Volume = transportModel.Volume.ToString(),
                                Origin = origin.Name,
                                Destination = destination.Name,
                                Routes = transportRequest.TransportUnits[0].ProposedRoutes
                            };

            return View(model);
        }
Esempio n. 2
0
        public TransportUnit(Destination origin, Destination destination, DateTime minPickupTime, DateTime maxDeliveryTime, CargoDefinition cargo, IList<Route> proposedRoutes)
        {
            this.Init(origin, destination, minPickupTime, maxDeliveryTime, cargo);

            this.proposedRoutes = proposedRoutes;
        }
Esempio n. 3
0
 public TransportUnit(Destination origin, Destination destination, DateTime minPickupTime, DateTime maxDeliveryTime, CargoDefinition cargo, Route selectedRoute)
 {
     this.Init(origin, destination, minPickupTime, maxDeliveryTime, cargo);
     this.selectedRoute = selectedRoute;
 }
Esempio n. 4
0
 public TransportUnit(Destination origin, Destination destination, DateTime minPickupTime, DateTime maxDeliveryTime, CargoDefinition cargo)
 {
     this.Init(origin, destination, minPickupTime, maxDeliveryTime, cargo);
 }
Esempio n. 5
0
 private void Init(Destination origin, Destination destination, DateTime minPickupTime, DateTime maxDeliveryTime, CargoDefinition cargo)
 {
     this.origin = origin;
     this.destination = destination;
     this.minPickupTime = minPickupTime;
     this.maxDeliveryTime = maxDeliveryTime;
     this.cargo = cargo;
 }