Exemple #1
0
        // 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));
        }
Exemple #2
0
 public ActionResult Index(BeginReservationsViewModel model)
 {
     Session["model"] = model;
     return(RedirectToAction("Create", "Reservations"));
 }