//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")); } }
public MainWindowViewModel() { Currency = new List <string>() { "HRK", "EUR", "USD" }; Countries = AirportManager.GetCountries(); FlightSearch = new FlightSearch(); FlightResult = new FlightResult(); AirportAutocomplete = new AirportAutocomplete(); AirportManager.ReadFlights(); }
public Flights Result(FlightsResults oResults) { Flights retVal = new Flights(); if (oResults != null) { foreach (Result item in oResults.Results) { Itinerary itinerary = item.Itineraries.FirstOrDefault(); Flight outboundFlight = null; Flight inboundFlight = null; int inboundCount = 0; int outboundCount = 0; if (itinerary != null) { outboundFlight = itinerary.Outbound.Flights.FirstOrDefault(); inboundFlight = itinerary.Inbound.Flights.FirstOrDefault(); inboundCount = itinerary.Inbound.Flights.Count; outboundCount = itinerary.Outbound.Flights.Count; } FlightResult itemresult = new FlightResult(); itemresult.TotalPrice = Decimal.Parse(item.Fare.TotalPrice, CultureInfo.InvariantCulture); itemresult.Currency = oResults.Currency; itemresult.ConnectingFlightsInboundCount = inboundCount; itemresult.ConnectingFlightsOutboundCount = outboundCount; if (outboundFlight != null) { itemresult.DepartsAt = DateTime.Parse(outboundFlight.DepartsAt); } if (inboundFlight != null) { itemresult.ArrivesAt = DateTime.Parse(inboundFlight.DepartsAt); } itemresult.PassengerCount = _viewModel.FlightSearch.AdultsNumber + _viewModel.FlightSearch.ChildrenNumber + _viewModel.FlightSearch.InfantsNumber; itemresult.Origin = _viewModel.FlightSearch.Origin; itemresult.Destination = _viewModel.FlightSearch.Destination; retVal.Results.Add(itemresult); } } return(retVal); }
public ActionResult FlightListWithStops2(string fid) { FlightSearch flightSearch = (FlightSearch)Session["searchParams"]; ViewBag.RoundTrip = flightSearch.IsRoundTrip; if (Session["firstTrips"] == null) { return(RedirectToAction("Index")); } IEnumerable <FlightResult> secondTrips = FlightSearchDAO.SecondTripFromStop; Session["fid2"] = null; IEnumerable <FlightResult> firstTrips = (IEnumerable <FlightResult>)Session["firstTrips"]; FlightResult firstTrip = firstTrips.Where(item => item.FlightVM.FNo == fid).FirstOrDefault(); Session["firstTrip"] = firstTrip; var model = from s in secondTrips where s.FlightVM.DepartureTime >= firstTrip.FlightVM.ArrivalTime orderby s.FlightVM.BasePrice select s; return(View(model)); }
public IHttpActionResult SearchFlightDetails([FromBody] SearchFlightDetails searchFlightDetailsObject) { List <FlightResult> flightResultList = new List <FlightResult>(); var departurCity = searchFlightDetailsObject.Departure; var arrivalCity = searchFlightDetailsObject.Arrival; var arrivalCityCode = string.Empty; // Retrieve Departure City Code var departureCityCode = RunAPI.GetFlightCityCode(RunAPI.CitiesTypeAheadEndPoint, departurCity); //Kansas City, MO, USA if (!string.IsNullOrEmpty(arrivalCity)) { arrivalCityCode = RunAPI.GetFlightCityCode(RunAPI.CitiesTypeAheadEndPoint, arrivalCity); } searchFlightDetailsObject.Departure = departureCityCode; searchFlightDetailsObject.Arrival = arrivalCityCode; // searchFlightDetailsObject.DepartureDate = Convert.ToDateTime(searchFlightDetailsObject.DepartureDate).ToString("MM/dd/yyyy"); try { //Get searchFlightJsonObject string searchFlightJsonObject = RunAPI.FormatFlightSearchJsonObject(searchFlightDetailsObject.Departure, searchFlightDetailsObject.Arrival, searchFlightDetailsObject.DepartureDate, numberOfAdult: Convert.ToInt32(searchFlightDetailsObject.TotalAdults), numberOfChild: Convert.ToInt32(searchFlightDetailsObject.TotalChildren), numberOfInfant: Convert.ToInt32(searchFlightDetailsObject.TotalInfants)); //Search flights - Call Flight search endpoint var searchFlightsResult = RunAPI.PostSearchFlightAsync(RunAPI.SearchFlightEndPoint, searchFlightJsonObject).Result; //Deserialize flight results data dynamic deserializedSearchFlightList = JsonConvert.DeserializeObject(searchFlightsResult); var resultItineraries = deserializedSearchFlightList.body.data.itineraries; foreach (var itinerary in resultItineraries) { var flightResult = new FlightResult(); foreach (var originDestination in itinerary.origin_destinations) { //Elapsed Time flightResult.ElapsedTime = Convert.ToString(originDestination.elapsed_time); //Flight segments foreach (var segment in originDestination.segments) { flightResult.FlightSegmentList.Add(new FlightSegment { DepartureDate = Convert.ToString(segment.departure.date), DepartureTime = Convert.ToString(segment.departure.time), DepartureAirport = Convert.ToString(segment.departure.airport.name), DepartureTerminal = Convert.ToString(segment.departure.airport.terminal), ArrivalDate = Convert.ToString(segment.arrival.date), ArrivalTime = Convert.ToString(segment.arrival.time), ArrivalAirport = Convert.ToString(segment.arrival.airport.name), ArrivalTerminal = Convert.ToString(segment.arrival.airport.terminal), FlightNumber = Convert.ToString(segment.flight_number), FlightDuration = Convert.ToString(segment.flight_duration), OperatingAirline = Convert.ToString(segment.operating_airline.name), MarketingAirline = Convert.ToString(segment.marketing_airline.name), BaggageAllowance = Convert.ToString(segment.baggage[0].baggage.quantity) + Convert.ToString(segment.baggage[0].baggage.unit) }); } //Cabin - Economy, Business, First Class etc flightResult.Cabin = Convert.ToString(itinerary.cabin.name); //Currency flightResult.PriceCurrency = Convert.ToString(itinerary.pricing.provider.currency.code); //Base Fare flightResult.BaseFarePrice = Convert.ToString(itinerary.pricing.provider.base_fare); //Total Fare flightResult.TotalFarePrice = Convert.ToString(itinerary.pricing.provider.total_fare); foreach (var fareBreakDownItem in itinerary.pricing.provider.fare_break_down) { flightResult.FlightPriceList.Add(new FlightPrice { PassengerCode = Convert.ToString(fareBreakDownItem.passenger.code), PassengerQty = Convert.ToString(fareBreakDownItem.passenger.quantity), TotalPassengerFarePrice = Convert.ToString(fareBreakDownItem.provider_fare.total), PassengerFareTax = Convert.ToString(fareBreakDownItem.provider_fare.taxes[0]), }); } } flightResultList.Add(flightResult); } return(Ok(flightResultList)); } catch (Exception ex) { return(NotFound()); } }