public async Task OnNavigatedTo() { // initialize firebase helper _firebaseHelper = new FirebaseHelper(); // initialize list for storing favorites cities, which will be shown on the page _favoriteCitiesTmp = new List <CityForecastItem>(); // tmp list FavoriteCities = new ObservableCollection <CityForecastItem>(); await RefreshFavoriteCitiesList(); }
/// <summary> /// Checks if the city is in favorites list and sets favorite icon depending on that /// </summary> /// <returns></returns> private async Task IsCityInFavorites() { // get the current favorites list FirebaseHelper firebaseHelper = new FirebaseHelper(); await firebaseHelper.GetFavoritesCities(); if (await firebaseHelper.CityIsInFavorites(_weatherForecastService.CityId)) { FavoriteIconPath = Constants.FavoriteIconPath; } else { FavoriteIconPath = Constants.FavoriteBorderIconPath; } }
/// <summary> /// Adds city to the favorite cities list if the city doesn't belong to it /// Deletes city from the favorite cities list if the city belong to it /// </summary> /// <returns></returns> private async Task AddOrDeleteCityFromFavorites() { // get the current favorites list FirebaseHelper firebaseHelper = new FirebaseHelper(); await firebaseHelper.GetFavoritesCities(); // Add or delete the city form favorites if (await firebaseHelper.CityIsInFavorites(_weatherForecastService.CityId)) { await firebaseHelper.DeleteCityFromFavorites(_weatherForecastService.CityId); } else { await firebaseHelper.PutFavoriteCity( _weatherForecastService.CityName, _weatherForecastService.CityId ); } // reload favorite icon await IsCityInFavorites(); }