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;
        }
        private void RemoveFavoriteRoute(IFavorite route)
        {
            GroupedFavoriteRoutes.Remove(route);

            var            faveRoute = (FavoriteRoute)route;
            ColoredMapLine toRemove  = MappableFavoriteRoutes
                                       .FirstOrDefault(x => x.OptionalId == faveRoute.Id);

            MappableFavoriteRoutes.Remove(toRemove);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }
        private void AddFavoriteRoute(IFavorite route)
        {
            GroupedFavoriteRoutes.AddSorted(route);

            var faveRoute = (FavoriteRoute)route;

            IEnumerable <ColoredMapLinePoint> mapPoints = faveRoute.RouteGeometryStrings
                                                          .SelectMany(str => GooglePolineDecoder.Decode(str))
                                                          .Select(coords => new ColoredMapLinePoint(coords, HslColors.GetModeColor(ApiMode.Bus)));
            var mapLine = new ColoredMapLine(mapPoints, faveRoute.Id);

            mapLine.OptionalId = faveRoute.Id;
            MappableFavoriteRoutes.Add(mapLine);

            RaisePropertyChanged(nameof(IsFavoritesEmpty));
        }