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);
            }
        }