示例#1
0
        public TransportRequest(Customer customer, TransportUnit transportUnit)
        {
            List<TransportUnit> units = new List<TransportUnit>();

            units.Add(transportUnit);
            this.Init(customer, units);
        }
示例#2
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);
        }
示例#3
0
        public Route(TransportUnit transportUnit, double shortage, List<Leg> legs)
        {
            this.transportUnit = transportUnit;
            this.shortage = shortage;

            //make sure that the legs are sorted in departure time order
            legs.Sort(delegate(Leg x, Leg y) { return x.DepartureTime.CompareTo(y.DepartureTime); });
            this.legs = legs;
        }