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 async Task <FlightsResults> Search() { FlightsResults retVal = null; using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(AmadeusFlightUri); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.GetAsync(_viewModel.GetFlightParametersUrl()); if (response.IsSuccessStatusCode) { retVal = await response.Content.ReadAsAsync <FlightsResults>(); } } return(retVal); }
public void Execute(object parameter) { Flights flights = null; string key = GenerateUniqueKey(); if (!FlightsCache.ContainsKey(key)) { FlightsResults flightsResults = Task.Run(() => Search()).Result; flights = Result(flightsResults); flights.Key = key; FlightsCache.Add(key, flights); } else { flights = FlightsCache[key]; } DisplayFlights displayFlightsWindow = new DisplayFlights(); ((DisplayFlightsViewModel)displayFlightsWindow.DataContext).FlightResults = flights.Results; displayFlightsWindow.ShowDialog(); }