Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        //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"));
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        //Returns view model of selected flight.
        public ActionResult FlightDetails(string fid, int rid)
        {
            var model = FlightSearchDAO.GetFlightResult(fid, rid);

            return(View(model));
        }
Esempio n. 6
0
 IEnumerable <FlightResult> GetFlightList(FlightSearch flightSearch) => FlightSearchDAO.GetFlightResults(flightSearch);