Esempio n. 1
0
        public IActionResult Search()
        {
            FlightSearchViewModel viewModel = new FlightSearchViewModel
            {
                Adults        = 1,
                Children      = 0,
                Infants       = 0,
                Date          = DateTime.Today,
                SearchResults = new List <FlightInformation>()
            };

            return(View(viewModel));
        }
Esempio n. 2
0
        public ActionResult FlightSearch([Bind(Include = "BeginDepartureTimeRange,EndDepartureTimeRange,SeatsNeeded,Nonstop,RoundTrip")] FlightSearchViewModel model, int City1ID, int City2ID)
        {
            //datetime objects have a (yyyy,mm,dd,hh,mm,ss) so to get (yyyy,mm,dd,0,0,0) you subtract time of day
            //then to get the day after, you add 24 hrs
            if (model.BeginDepartureTimeRange < DateTime.Now.Date)
            {
                ViewBag.Error     = "Begin time must be in future";
                ViewBag.AllCities = GetAllCities();
                return(View());
            }
            if (model.EndDepartureTimeRange < DateTime.Now.Date)
            {
                ViewBag.AllCities = GetAllCities();
                ViewBag.Error     = "End time must be in future";
                return(View());
            }
            if (model.EndDepartureTimeRange < model.BeginDepartureTimeRange)
            {
                ViewBag.AllCities = GetAllCities();
                ViewBag.Error     = "End time must be after begin time";
                return(View());
            }
            if (City1ID == City2ID)
            {
                ViewBag.AllCities = GetAllCities();
                ViewBag.Error     = "You must pick different cities";
                return(View());
            }

            DateTime      enddate   = model.EndDepartureTimeRange - model.EndDepartureTimeRange.TimeOfDay + new TimeSpan(24, 0, 0);
            DateTime      startdate = model.BeginDepartureTimeRange - model.BeginDepartureTimeRange.TimeOfDay;
            List <Flight> fquery    = db.Flights.Where(d => d.DepartDateTime >= startdate &&
                                                       d.DepartDateTime <= enddate)
                                      .Where(d => d.Departed == false && d.Cancelled == false)
                                      .Where(c => c.SeatsAvailable >= model.SeatsNeeded).ToList();

            fquery = fquery.Where(c => c.FlightNumber.startCity.CityID == City1ID).ToList();

            City endcity = db.Cities.Find(City2ID);

            String endairport = endcity.Airport;

            fquery = fquery.Where(d => d.FlightNumber.endCityAirport == endairport).ToList();
            Reservation newReservation = new Reservation(db);

            newReservation.RoundTrip = model.RoundTrip;
            db.Reservations.Add(newReservation);
            db.SaveChanges();
            return(View("SelectedFlights", fquery));
        }
Esempio n. 3
0
        public async Task <IActionResult> Search(string originCode, string destinationCode, int adults, int children, int infants, DateTime date)
        {
            if (!ModelState.IsValid)
            {
                return(NotFound());
            }

            List <FlightInformation> searchResults = await _flightInfoService.FlightSearchAsync(originCode, destinationCode, adults, children, infants, date);

            FlightSearchViewModel viewModel = new FlightSearchViewModel
            {
                Adults        = adults,
                Children      = children,
                Infants       = infants,
                Date          = date,
                SearchResults = searchResults
            };

            return(View(viewModel));
        }
        public ActionResult Search([Bind(Include = "DepartureAirport,ArrivalAirport,DepartureDate,ReturnDate,MaximumConnections,MaximumTime,MaximumPrice")] FlightSearchViewModel vm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var connections = Client.GetRoutes(vm.DepartureDate, vm.DepartureAirport, vm.ArrivalAirport,
                                                       vm.MaximumConnections, vm.MaximumTime, vm.MaximumPrice);

                    var bookings = connections.Select(c => new FlightConnectionViewModel(c));
                    return(View("Results", bookings));
                }
            }
            catch (Exception /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.)
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }

            return(View(vm));
        }
Esempio n. 5
0
        public ActionResult FlightSearch([Bind(Include = "BeginDepartureTimeRange,EndDepartureTimeRange")] FlightSearchViewModel model, int City1ID, int City2ID)
        {
            //datetime objects have a (yyyy,mm,dd,hh,mm,ss) so to get (yyyy,mm,dd,0,0,0) you subtract time of day
            //then to get the day after, you add 24 hrs
            DateTime      enddate   = model.EndDepartureTimeRange - model.EndDepartureTimeRange.TimeOfDay + new TimeSpan(24, 0, 0);
            DateTime      startdate = model.BeginDepartureTimeRange - model.BeginDepartureTimeRange.TimeOfDay;
            List <Flight> fquery    = db.Flights.Where(d => d.DepartDateTime >= startdate &&
                                                       d.DepartDateTime <= enddate).ToList();


            fquery = fquery.Where(c => c.FlightNumber.startCity.CityID == City1ID).ToList();

            City endcity = db.Cities.Find(City2ID);

            String endairport = endcity.Airport;

            fquery = fquery.Where(d => d.FlightNumber.endCityAirport == endairport).ToList();



            return(View("Index", fquery));
        }
Esempio n. 6
0
        // GET: Flights
        public async Task <IActionResult> Index(string toString, string fromString)
        {
            var flights = from f in _context.Flight
                          select f;

            if (!string.IsNullOrEmpty(toString))
            {
                flights = flights.Where(f => f.ToLocation.Contains(toString));
            }

            if (!string.IsNullOrEmpty(fromString))
            {
                flights = flights.Where(f => f.FromLocation.Contains(fromString));
            }

            FlightSearchViewModel model = new FlightSearchViewModel
            {
                Flights = await flights.ToListAsync()
            };

            Response.StatusCode = (int)HttpStatusCode.OK;
            return(View(model));
        }