public ActionResult GetAirports() { List <string> airports = new List <string>(); var airportsDB = FlightSearchDAO.GetAirports(); foreach (var item in airportsDB) { airports.Add(string.Format("{0} ({1})", item.CityName, item.AirportID)); } return(Json(airports.ToArray(), JsonRequestBehavior.AllowGet)); }
//Passing 1st trip and run a reverse search with return date public ActionResult FlightListReturn(string fid, int rid, int?page) { try { var ridParse = int.TryParse(rid.ToString(), out int ridParsed); if (string.IsNullOrEmpty(fid)) { fid = (string)Session["fid1"]; } if (!ridParse) { rid = (int)Session["rid1"]; } Session["fid1"] = fid; Session["rid1"] = rid; Session["fid2"] = null; FlightResult firstTrip = FlightSearchDAO.GetFlightResult(fid, rid); FlightSearch flightSearch = (FlightSearch)Session["searchParams"]; ViewBag.RoundTrip = flightSearch.IsRoundTrip; var seatsLeft = firstTrip.FlightVM.AvailSeatsB + firstTrip.FlightVM.AvailSeatsF + firstTrip.FlightVM.AvailSeatsE; //interrupt check for available seats if (seatsLeft == 0) { TempData["NoSeatsMessage"] = "Sorry, there are no more seats left for flight " + firstTrip.FlightVM.FNo; return(RedirectToAction("FlightList", flightSearch)); } //flip search query FlightSearch flightSearchReturn = ReverseFlightSearch(flightSearch); ViewBag.firstTrip = firstTrip; ViewBag.Pages = GetPages(flightSearchReturn); if (page == null) { ViewBag.PageIndex = 1; return(View("FlightList", GetFlightsForPage(1))); } ViewBag.PageIndex = page; //for debugging, making sure the original params are intact //Session["searchParams"] = flightSearch; return(View("FlightList", GetFlightsForPage(int.Parse(page.ToString())))); } catch (Exception) { //returns to home if search reversal procedure fails at any point TempData["errorM"] = "There was an error executing your requests. Please try again"; return(RedirectToAction("Index")); } }
FlightSearch ReverseFlightSearch(FlightSearch flightSearch) { //create new search parameters in memory that references the original parameters (else changing the depatures will change session's values) FlightSearch flightSearchReversed = FlightSearchDAO.Copy(flightSearch); //flip departure and arrival and run search query var roundTripEnd = flightSearchReversed.Departure; var roundTripStart = flightSearchReversed.Destination; flightSearchReversed.Departure = roundTripStart; flightSearchReversed.Destination = roundTripEnd; flightSearchReversed.DepartureTime = flightSearch.ReturnDepartureTime; return(flightSearchReversed); }
public ActionResult FlightListWithStops() { Session["fid1"] = null; FlightSearch flightSearch = (FlightSearch)Session["searchParams"]; ViewBag.RoundTrip = flightSearch.IsRoundTrip; IEnumerable <FlightResult> firstTrips = FlightSearchDAO.GetFlightResultsWithStops(flightSearch).OrderBy(item => item.FlightVM.BasePrice); Session["firstTrips"] = firstTrips; if (firstTrips.Count() == 0) { TempData["errorM"] = "Could not find any connecting trips to " + flightSearch.Destination + ", Sorry."; return(RedirectToAction("Index")); } return(View(firstTrips)); }
//Returns view model of selected flight. public ActionResult FlightDetails(string fid, int rid) { var model = FlightSearchDAO.GetFlightResult(fid, rid); return(View(model)); }
IEnumerable <FlightResult> GetFlightList(FlightSearch flightSearch) => FlightSearchDAO.GetFlightResults(flightSearch);