private async Task OnDeleteFavorite() { if (SelectedFavorites?.Count > 0) { bool canNavigate = await NavigationManager.CanPopUpNavigateAsync <ChoiceModalViewModel>(); if (canNavigate) { var characters = SelectedFavorites.Cast <FavoritedAnimeCharacter>().ToList(); var action = new Action(() => { var characterCollection = App.liteDB.GetCollection <FavoritedAnimeCharacter>(); foreach (var item in characters) { characterCollection.Delete(item.Character.MalId); } FavoritedCharacters.RemoveRange(characters); }); await NavigationManager.NavigatePopUpAsync <ChoiceModalViewModel>(Lang.Lang.ClearFavoriteList, Lang.Lang.ClearCannotBeUndone, action); SelectedFavorites = null; } } }
private async Task OnSearch() { var resultListTask = Task.Run(() => { return(_originalCollection.Where(character => character.Character.Name.ToLowerInvariant().Contains(SearchQuery.ToLowerInvariant())).ToList()); }); var resultList = await resultListTask; FavoritedCharacters.ReplaceRange(resultList); }
public async Task LoadAsync(object param) { await Task.Run(() => { if (_isUpdatingCharacters) { return; } FavoritedCharacters.ReplaceRange(App.liteDB.GetCollection <FavoritedAnimeCharacter>().FindAll().ToList()); _originalCollection = new List <FavoritedAnimeCharacter>(FavoritedCharacters); }); }
private async Task OnClearAllRecent() { if (FavoritedCharacters.Count == 0) { return; } bool canNavigate = await NavigationManager.CanPopUpNavigateAsync <ChoiceModalViewModel>(); if (canNavigate) { var confirmDelegateAction = new Action(() => { App.liteDB.GetCollection <FavoritedAnimeCharacter>().DeleteAll(); FavoritedCharacters.Clear(); }); await NavigationManager. NavigatePopUpAsync <ChoiceModalViewModel>(Lang.Lang.ClearFavoriteList, Lang.Lang.ClearCannotBeUndone, confirmDelegateAction); } }