コード例 #1
0
        public ActionResult ConfirmReservation()
        {
            var route = TempData["TempRoute"] as RouteView;
            if (route == null)
            {
                RedirectToAction("Index");
            }

            var routeService = new RouteCtrServiceClient();
            var customerService = new CustomerCtrServiceClient();
            ViewBag.MapUrl = routeService.GetMapRouteUrl(route.Path);

            ViewBag.CustomerID = new SelectList(customerService.GetAllCustomers(), "ID", "Name");

            TempData["TempRoute"] = route;
            return View("ConfirmReservationGet", route);
        }
コード例 #2
0
        public ActionResult Index(int? batteryID, string ddlBatteryStationsFrom, string ddlBatteryStationsTo)
        {
            int? fromID = Convert.ToInt32(ddlBatteryStationsFrom);
            int? toID = Convert.ToInt32(ddlBatteryStationsTo);

            ViewData["ddlBatteryStationsFrom"] = new SelectList(locationService.GetAllBatteryStations(), "ID", "ZipCode.City");
            ViewData["ddlBatteryStationsTo"] = new SelectList(locationService.GetAllBatteryStations(), "ID", "ZipCode.City");

            if (batteryID == null || fromID == null || toID == null)
            {
                ViewBag.ErrorMessage = "Are you sure you entered valid input?";
                return View();
            }
            try
            {
                var routeService = new RouteCtrServiceClient();
                var serviceRoute = routeService.PlanRoute((int)fromID, (int)toID, (int)batteryID);
                RouteView route = this.converter.ConvertRoute(serviceRoute);
                double routeLength = route.Distance.Last();

                var modelBatteries = new List<Models.Battery>();
                var resBatteries = this.resService.GetBatteriesForReservation(route.Path,
                                                                              route.Distance,
                                                                              route.Range,
                                                                              (int)batteryID).Values.ToList();

                foreach (var bat in resBatteries)
                {
                    if (bat != null)
                    {
                        modelBatteries.Add(this.converter.ConvertBattery(bat));
                    }
                }

                route.Batteries = modelBatteries;

                if (route.Batteries.Count == 0 && route.Range < routeLength)
                {
                    ViewBag.ErrorMessage = "No available batteries were found.";
                    return View();
                }
                if (route.Batteries.Count == 0 && route.Range > routeLength)
                {
                    ViewBag.ErrorMessage = "You can go directly from StartLocation to EndLocaton";
                    return View();
                }

                TempData["TempRoute"] = route;
            }
            catch (FaultException)
            {
                ViewBag.ErrorMessage = "Are you sure you entered valid input?";
                return View();
            }
            return RedirectToAction("ConfirmReservation");
        }