// GET: Reservations/Create public ActionResult Create() { BeginReservationsViewModel model = (BeginReservationsViewModel)Session["model"]; if (model == null) { return(RedirectToAction("Index", "Home")); } CreateReservationsViewModel newModel = new CreateReservationsViewModel(); //newModel.PartialModel = model; newModel.RoundTrip = model.RoundTrip; //newModel.NumPassengers = model.Passengers; newModel.Reservations = new List <Reservation>(model.Passengers); newModel.Luggages = new List <int>(model.Passengers); newModel.ReturnLuggages = new List <int>(model.Passengers); for (int i = 0; i < model.Passengers; ++i) { Reservation res = new Reservation(); res.RoundTrip = model.RoundTrip; newModel.Reservations.Add(res); newModel.Luggages.Add(0); newModel.ReturnLuggages.Add(0); } DateTime departure = DateTime.Parse(model.Departure, CultureInfo.CreateSpecificCulture("en-US")); DateTime returnDate = new DateTime(0); if (model.RoundTrip) { returnDate = DateTime.Parse(model.Return, CultureInfo.CreateSpecificCulture("en-US")); } IEnumerable <Flight> flights = (from f in db.Flights.Where(x => x.AirportFrom.Id.Equals(model.AirportFrom)) .Where(x => x.AirportTo.Id.Equals(model.AirportTo)) .Where(x => DbFunctions.TruncateTime(x.Departure) == departure) .Where(x => x.NumOfFreeSeats >= model.Passengers) .ToList() select f); ViewBag.f = flights; IEnumerable <Flight> rflights = (from f in db.Flights.Where(x => x.AirportFrom.Id.Equals(model.AirportTo)) .Where(x => x.AirportTo.Id.Equals(model.AirportFrom)) .Where(x => DbFunctions.TruncateTime(x.Departure) == returnDate) .Where(x => x.NumOfFreeSeats >= model.Passengers) .ToList() select f); ViewBag.rf = rflights; IEnumerable <SelectListItem> selectListFlights = from s in db.Flights.Where(x => x.AirportFrom.Id.Equals(model.AirportFrom)) .Where(x => x.AirportTo.Id.Equals(model.AirportTo)) .Where(x => DbFunctions.TruncateTime(x.Departure) == departure) .Where(x => x.NumOfFreeSeats >= model.Passengers) .ToList() select new SelectListItem { Value = s.Id.ToString(), Text = s.ToString() }; ViewBag.Flights = new SelectList(selectListFlights, "Value", "Text"); ViewBag.ReturnFlights = new SelectList(new List <string>()); if (model.RoundTrip) { IEnumerable <SelectListItem> selectListReturnFlights = from s in db.Flights.Where(x => x.AirportFrom.Id.Equals(model.AirportTo)) .Where(x => x.AirportTo.Id.Equals(model.AirportFrom)) .Where(x => DbFunctions.TruncateTime(x.Departure) == returnDate) .Where(x => x.NumOfFreeSeats >= model.Passengers) .ToList() select new SelectListItem { Value = s.Id.ToString(), Text = s.ToString() }; ViewBag.ReturnFlights = new SelectList(selectListReturnFlights, "Value", "Text"); } IEnumerable <SelectListItem> selectListLuggages = from s in db.Luggages.ToList() select new SelectListItem { Value = s.Id.ToString(), Text = s.ToString() }; ViewBag.Luggages = new SelectList(selectListLuggages, "Value", "Text"); return(View(newModel)); }
public ActionResult Index(BeginReservationsViewModel model) { Session["model"] = model; return(RedirectToAction("Create", "Reservations")); }