private async Task Initialize()
{
if (FavoritesService.CurrentFavoritesService.Favorites == null)
{
if (await FavoritesService.CurrentFavoritesService.SetFavoritesCollection())
Items = FavoritesService.CurrentFavoritesService.Favorites;
}
Messenger.Default.Register<AddItemToFavoritesMessage>(this, msg =>
{
try
{
FavoritesService.CurrentFavoritesService.AddToFavorites(msg.Item);
Items = FavoritesService.CurrentFavoritesService.Favorites;
RaisePropertyChanged(() => IsSelectedItemInFavorites);
}
catch (Exception ex)
{
var _ = App.ShowExceptionDialog(ex);
}
});
Messenger.Default.Register<RemoveItemFromFavoritesMessage>(this, msg =>
{
try
{
FavoritesService.CurrentFavoritesService.RemoveFromFavorites(msg.Item);
Items = FavoritesService.CurrentFavoritesService.Favorites;
RaisePropertyChanged(() => IsSelectedItemInFavorites);
}
catch (Exception ex)
{
var _ = App.ShowExceptionDialog(ex);
}
});
// reset Favorites when signing in
Messenger.Default.Register<ChangeSignInMessage>(this, msg => { FavoritesService.CurrentFavoritesService.Favorites = null; });
// reset Favorites when signing out
Messenger.Default.Register<ChangeSignOutMessage>(this, msg => { FavoritesService.CurrentFavoritesService.Favorites = null; });
}
}