Ejemplo n.º 1
0
        private void RemoveFavoritePlace(IFavorite deletedFave)
        {
            GroupedFavoritePlaces.Remove(deletedFave);
            MappableFavoritePlaces.Remove(deletedFave as IMapPoi);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }
Ejemplo n.º 2
0
        //---These methods happen in reaction to the FavoritesChanged Event.
        private void AddFavoritePlace(IFavorite place)
        {
            GroupedFavoritePlaces.AddSorted(place);
            MappableFavoritePlaces.Add(place as IMapPoi);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }
Ejemplo n.º 3
0
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state)
        {
            _favoritesService.FavoritesChanged += FavoritesChanged;

            //todo: change this from nuking/rebuilding every time to add/remove what's changed
            GroupedFavoritePlaces.Clear();
            MappableFavoritePlaces.Clear();
            GroupedFavoriteRoutes.Clear();
            MappableFavoriteRoutes.Clear();

            var favorites = await _favoritesService.GetFavoritesAsync();

            foreach (IPlace place in favorites.OfType <IPlace>())
            {
                AddFavoritePlace((IFavorite)place);
            }

            foreach (FavoriteRoute route in favorites.OfType <FavoriteRoute>())
            {
                AddFavoriteRoute(route);
            }


            await Task.CompletedTask;
        }
Ejemplo n.º 4
0
        private void FavoritesChanged(object sender, FavoritesChangedEventArgs args)
        {
            if (args.AddedFavorites?.Count > 0)
            {
                foreach (var favePlace in args.AddedFavorites.OfType <FavoritePlace>())
                {
                    AddFavoritePlace(favePlace);
                }
                foreach (var faveRoute in args.AddedFavorites.OfType <FavoriteRoute>())
                {
                    AddFavoriteRoute(faveRoute);
                }
            }

            if (args.RemovedFavorites?.Count > 0)
            {
                foreach (var deletedFave in args.RemovedFavorites.OfType <FavoritePlace>())
                {
                    RemoveFavoritePlace(deletedFave);
                }
                foreach (var deletedRoute in args.RemovedFavorites.OfType <FavoriteRoute>())
                {
                    RemoveFavoriteRoute(deletedRoute);
                }
            }
            if (args.EditedFavorites?.Count > 0)
            {
                foreach (var editedFave in args.EditedFavorites)
                {
                    var toEdit = GroupedFavoritePlaces.FirstOrDefault(x => x.Id == editedFave.Id);
                    if (toEdit != null)
                    {
                        RemoveFavoritePlace(toEdit);
                        AddFavoritePlace(editedFave);
                    }

                    toEdit = GroupedFavoriteRoutes.FirstOrDefault(x => x.Id == editedFave.Id);
                    if (toEdit != null)
                    {
                        RemoveFavoriteRoute(toEdit);
                        AddFavoriteRoute(editedFave);
                    }
                }
            }
        }