//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")); } }
//Returns view model of selected flight. public ActionResult FlightDetails(string fid, int rid) { var model = FlightSearchDAO.GetFlightResult(fid, rid); return(View(model)); }