private async Task <bool> LoadGlobalCatalogueAsync() { await App.DelayRequest(4); try { AnimeSearchResult anime = null; if (string.IsNullOrWhiteSpace(SearchQuery)) { anime = await App.Jikan.SearchAnime(_animeSearchConfig, _pageCount ++); } else if (SearchQuery?.Length > 0) { ResetSearchConfig(_settingsPreferences.ShowNSFW, AnimeSearchSortable.Title, SortDirection.Descending); anime = await App.Jikan.SearchAnime(SearchQuery, _pageCount ++, _animeSearchConfig); } Console.WriteLine($"Page count {_pageCount}"); if (anime?.Results != null) { anime.RequestCached = true; IList <FavoritedAnime> animes = await anime.Results.ConvertAnimeSearchEntryToAnimeSubEntry() .ConvertCatalogueAnimesToFavoritedAsync(_settingsPreferences.ShowNSFW); var toAddAnimes = new List <FavoritedAnime>(); var equalityComparer = new FavoriteAnimeEqualityComparer(); foreach (var item in animes) { if (!Animes.Contains(item, equalityComparer)) { toAddAnimes.Add(item); } } _originalCollection.AddRange(toAddAnimes); Animes.AddRange(toAddAnimes); return(false); } } catch (JikanRequestException ex) { ex.SaveExceptionData(); } catch (OperationCanceledException ex) { } catch (Exception ex) { ex.SaveExceptionData(); } return(true); }
public async Task LoadAsync(bool refresh = false) { if (IsBusy) { return; } IsBusy = true; if (IsMultiSeason) { FeaturedVideo = await _animeService.GetLatestEpisodeAsync(); var seasons = await _seasonService.ListAsync(new DataServices.ListRequest { Skip = refresh ? 0 : Seasons.Count }); Seasons.Clear(); Seasons.AddRange(seasons); foreach (var season in Seasons) { var episodes = await _animeService.ListEpisodeBySeasonAsync(new ListEpisodeBySeasonRequest { SeasonId = season.Id, Take = 5 }); season.Episodes.AddRange(episodes); } } else { List <Anime> animes = null; if (DataSource.ToLower() == "tvspecials") { FeaturedVideo = await _animeService.GetLatestTvSpecialAsync(); animes = await _animeService.ListTvSpecialsAsync(new DataServices.ListRequest { Skip = refresh ? 0 : Animes.Count }); } else if (DataSource.ToLower() == "movies") { FeaturedVideo = await _animeService.GetLatestMovieAsync(); animes = await _animeService.ListMoviesAsync(new DataServices.ListRequest { Skip = refresh ? 0 : Animes.Count }); } if (animes != null) { Animes.Clear(); Animes.AddRange(animes); } } IsBusy = false; }
public async Task LoadAsync() { if (IsBusy) { return; } IsBusy = true; _appDataStorage.SaveAnime(Anime); List <Anime> animes = null; switch (AnimeType.ToLower()) { case "stories": animes = await _animeService.ListStoriesAsync(new DataServices.ListRequest { Skip = Animes.Count }); break; case "tvspecials": animes = await _animeService.ListTvSpecialsAsync(new DataServices.ListRequest { Skip = Animes.Count }); break; case "movies": animes = await _animeService.ListMoviesAsync(new DataServices.ListRequest { Skip = Animes.Count }); break; } Animes.Clear(); Animes.AddRange(animes); var seasons = await _seasonService.ListAsync(new DataServices.ListRequest { Skip = Seasons.Count }); Seasons.Clear(); Seasons.AddRange(seasons); IsBusy = false; }
private async Task LoadSeasonCatalogueAsync() { try { IsSeasonCatalogue = true; //remove EndDate, essa informação não existe nos animes da temporada FilterData.Orders.RemoveAt(FilterData.Orders.Count - 1); await App.DelayRequest(); var results = await App.Jikan.GetSeason(); results.RequestCached = true; var favoritedEntries = await results.SeasonEntries.ConvertCatalogueAnimesToFavoritedAsync(_settingsPreferences.ShowNSFW); _originalCollection = favoritedEntries.OrderByDescending(p => p.Anime.Score).ToList(); Animes.AddRange(_originalCollection); await App.DelayRequest(); var seasonArchive = await App.Jikan.GetSeasonArchive(); int minYear = seasonArchive.Archives.Min(p => p.Year); int maxYear = seasonArchive.Archives.Max(p => p.Year); Lazy <ResourceManager> ResMgr = new Lazy <ResourceManager>( () => new ResourceManager(typeof(Lang.Lang))); string selectedSeason = ResMgr.Value.GetString(results.SeasonName); Seasons name = (JikanDotNet.Seasons)Enum.Parse(typeof(JikanDotNet.Seasons), results.SeasonName); SeasonData = new SeasonData(results.SeasonYear, selectedSeason, minYear, maxYear); } catch (JikanRequestException ex) { ex.SaveExceptionData(); } catch (OperationCanceledException ex) { } catch (Exception ex) { ex.SaveExceptionData(); } }
public async Task LoadAsync(bool refresh = false) { if (IsBusy) { return; } IsBusy = true; var animes = await _animeService.ListEpisodeBySeasonAsync(new ListEpisodeBySeasonRequest { Skip = refresh ? 0 : Animes.Count, SeasonId = Season.Id }); if (animes != null) { Animes.Clear(); Animes.AddRange(animes); } IsBusy = false; }
private async Task <bool> LoadByGenreAsync() { await App.DelayRequest(4); //TODO: entradas por aqui de gêneros como super power são convertidas para supernatural(o valor não muda, mas o MAL me manda os gêneros errados pra esse tipo) //ficar de olho e ver se é apenas mais um problema no MAL bool hasFinishedLoading = false; try { AnimeGenre animeGenre = await App.Jikan.GetAnimeGenre(_currentGenre.Value, _pageCount ++); if (animeGenre != null) { animeGenre.RequestCached = true; IList <FavoritedAnime> favoritedSubEntries = await animeGenre.Anime .ConvertCatalogueAnimesToFavoritedAsync(_settingsPreferences.ShowNSFW); _originalCollection.AddRange(favoritedSubEntries); Animes.AddRange(favoritedSubEntries); hasFinishedLoading = false; } else { RemainingAnimeCount = -1; hasFinishedLoading = true; } } catch (JikanRequestException ex) { ex.SaveExceptionData(); } catch (OperationCanceledException ex) { } catch (Exception ex) { ex.SaveExceptionData(); } return(hasFinishedLoading); }