public FlightSearchPageViewModel(INavigationService navigationService, FlightSearchState flightSearchState, IPageDialogService pageDialogService) : base(navigationService) { _pageDialogService = pageDialogService; Title = "Flight Finder (Empty Basket)"; FlightSearchState = flightSearchState; SearchCommand = new DelegateCommand(Search); AddCommand = new DelegateCommand <Itinerary>(Add); }
private async void Search() { if (Airports is null) { await GetAllAirports(); } var criteria = new SearchCriteria(Airports.ToArray()[FromAirportsSelectedIndex].Code, Airports.ToArray()[ToAirportsSelectedIndex].Code); await FlightSearchState.SearchFlights(criteria); Itineraries = FlightSearchState.SearchResults; }
private async Task GetAllAirports() { try { Airports = await FlightSearchState.GetAllAirports().ConfigureAwait(false); } catch (Exception ex) { await _pageDialogService.DisplayAlertAsync("Error", ex.Message, "Okay"); } if (Airports != null && Airports.Count() > 1) { // set default airports FromAirportsSelectedIndex = 1; ToAirportsSelectedIndex = 2; } }
private void Add(Itinerary itinerary) { FlightSearchState.AddToShortlist(itinerary); Title = $"Flight Finder (Basket: {FlightSearchState.Shortlist.Count})"; }