示例#1
0
 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);
 }
示例#2
0
        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;
        }
示例#3
0
        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;
            }
        }
示例#4
0
 private void Add(Itinerary itinerary)
 {
     FlightSearchState.AddToShortlist(itinerary);
     Title = $"Flight Finder (Basket: {FlightSearchState.Shortlist.Count})";
 }