コード例 #1
0
        /// <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}");
            }
        }
コード例 #2
0
        /// <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}");
            }
        }
コード例 #3
0
        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}");
            }
        }