/// <summary> /// Tries to fetch the requested page of the search results from the server. /// </summary> public async Task <SearchResult> LoadResultPage(string searchString, int pageToLoad, int retryCount, int delayMilliseconds, bool fromCache) { var pageResponse = await _tmdbApiService.TrySearchByMovie(searchString : searchString, _settings.SearchLanguage, !_settings.SafeSearch, pageToLoad, year : null, retryCount, delayMilliseconds, fromCache : fromCache); if (pageResponse.HttpStatusCode.IsSuccessCode()) { var searchResult = pageResponse.SearchResult; var filteredResults = _settings.SafeSearch ? _resultFilter.FilterBySearchSettings(searchResult.MovieDetailModels) : _resultFilter.FilterBySearchSettingsIncludeAdult(searchResult.MovieDetailModels); searchResult.MovieDetailModels = new ObservableCollection <MovieDetailModel>(filteredResults); _movieDetailModelConfigurator.SetImageSrc(searchResult.MovieDetailModels); _movieDetailModelConfigurator.SetGenreNamesFromGenreIds(searchResult.MovieDetailModels); return(searchResult); } else { throw new Exception($"Could not load search results, service responded with: {pageResponse.HttpStatusCode}"); } }
/// <summary> /// Tries to fetch the requested page of the trending movie list from the server. /// </summary> public async Task <SearchResult> LoadTrendingPage(bool week, int page, int retryCount, int delayMilliseconds) { var pageResponse = await _tmdbApiService.TryGetTrendingMovies(week : week, _settings.SearchLanguage, !_settings.SafeSearch, page, retryCount, delayMilliseconds); if (pageResponse.HttpStatusCode.IsSuccessCode()) { var result = pageResponse.TrendingMovies; result.MovieDetailModels = new ObservableCollection <MovieDetailModel>(_resultFilter.FilterBySearchSettings(result.MovieDetailModels)); _movieDetailConfigurator.SetImageSrc(result.MovieDetailModels); _movieDetailConfigurator.SetGenreNamesFromGenreIds(result.MovieDetailModels); return(result); } else { var timeSpan = week ? "weeks" : "days"; throw new Exception($"Could not load the {timeSpan} trending list, service responded with: {pageResponse.HttpStatusCode}"); } }
public async Task <SearchResult> LoadSimilarMoviesPage(int movieId, int page, int retryCount, int delayMilliseconds) { var response = await _tmdbApiService.TryGetSimilarMovies(movieId, _settings.SearchLanguage, page, retryCount, delayMilliseconds); if (response.HttpStatusCode.IsSuccessCode()) { var result = response.SimilarMovies; result.MovieDetailModels = new ObservableCollection <MovieDetailModel>(_searchResultFilter.FilterBySearchSettings(result.MovieDetailModels)); _movieDetailModelConfigurator.SetImageSrc(result.MovieDetailModels); _movieDetailModelConfigurator.SetGenreNamesFromGenreIds(result.MovieDetailModels); return(result); } else { throw new Exception($"Could not update the similar movies list, service responded with: {response.HttpStatusCode}"); } }