public async Task <SearchMovie> GetMoviesByCategoryAsync(int page, Enums.MovieCategory category) { var restUrl = $"{baseUrl}{Enums.PathCategoryMovie(category)}?api_key={apiKey}&page={page}&language={language}"; try { using (var response = await httpClient.GetAsync(restUrl).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) { return(JsonConvert.DeserializeObject <SearchMovie>( await new StreamReader(responseStream).ReadToEndAsync().ConfigureAwait(false))); } } } } catch (Exception ex) { ReportError(ex); } return(null); }
private async Task LoadMoviesAsync(int page, Enums.MovieCategory movieCategory) { try { // Added to configure "ConfigureAwait(true)" on Windows var continueOnCapturedContext = Device.RuntimePlatform == Device.Windows; genres = genres ?? await ApiService.GetGenresAsync().ConfigureAwait(continueOnCapturedContext); var searchMovie = await ApiService.GetMoviesByCategoryAsync(page, movieCategory).ConfigureAwait(continueOnCapturedContext); if (searchMovie != null) { var movies = new List <Movie>(); totalPage = searchMovie.TotalPages; foreach (var movie in searchMovie.Movies) { GenreListToString(movie); movies.Add(movie); } Movies.AddRange(movies); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } }
private async Task LoadMoviesAsync(int page, Enums.MovieCategory movieCategory) { try { genres = genres ?? await ApiService.GetGenresAsync().ConfigureAwait(false); var searchMovies = await ApiService.GetMoviesByCategoryAsync(page, movieCategory).ConfigureAwait(false); if (searchMovies != null) { var movies = new List <Movie>(); totalPage = searchMovies.TotalPages; foreach (var movie in searchMovies.Movies) { if (movie.GenreIds != null) { movie.Genres = movie.Genres ?? genres.Where(genre => movie.GenreIds.Any(genreId => genreId == genre.Id)).ToArray(); } movies.Add(movie); } Movies.AddRange(movies); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } }
public Task <SearchMovie> GetMoviesByCategoryAsync(int page, Enums.MovieCategory category) { var searchMovie = new SearchMovie(); var moviesSearch = movies.Where(m => m.Title.ToLower().Contains(Enums.NameCategoryMovie(category).ToLower())).ToList(); var countSkip = numberMoviesByPage * (page - 1); searchMovie.Movies = moviesSearch.Skip(countSkip).Take(numberMoviesByPage).ToList(); searchMovie.TotalResults = moviesSearch.Count(); searchMovie.TotalPages = moviesSearch.Count() / numberMoviesByPage; return(Task.FromResult(searchMovie)); }