Пример #1
0
        private async Task <MovieDbGenres> GetGenres()
        {
            Dictionary <string, string> genres = new Dictionary <string, string>();

            MovieDbResponse movieDbItem = new MovieDbResponse();

            var client  = new RestClient("https://api.themoviedb.org/3/genre/movie/list");
            var request = new RestRequest(Method.GET);

            request.AddParameter("api_key", Settings.MovieDb_ApiKey);
            request.AddParameter("language", Settings.MovieDb_Language);

            LogManager.GetCurrentClassLogger().Info("Getting genres from MovieDb...");

            try
            {
                IRestResponse <MovieDbGenres> response = await client.ExecuteAsync <MovieDbGenres>(request);

                LogManager.GetCurrentClassLogger().Info("Finished getting genres from MovieDb");

                return(response.Data);
            }
            catch (Exception ex)
            {
                LogManager.GetCurrentClassLogger().Error(ex);
                throw ex;
            }
        }
Пример #2
0
        private void ChangeImages(MovieDbResponse response)
        {
            if (response == null || response.movie_results.Length == 0)
            {
                return;
            }

            var movieResult = response.movie_results[0];

            _headerImageRequest = StartCoroutine(DownloadImage(restApi.ImagesBaseUrl + movieResult.backdrop_path, true));
            _posterImageRequest = StartCoroutine(DownloadImage(restApi.ImagesBaseUrl + movieResult.poster_path, false));
        }
Пример #3
0
        public async Task <IEnumerable <MovieDbMovie> > SearchMovieAsync(string title)
        {
            MovieDbGenres genres = await GetGenres();

            List <MovieDbMovie> movies = new List <MovieDbMovie>();

            if (string.IsNullOrEmpty(title))
            {
                return(movies);
            }

            LogManager.GetCurrentClassLogger().Info($"Searching MovieDb for '{title}'...");

            try
            {
                var client  = new RestClient("https://api.themoviedb.org/3/search/movie");
                var request = new RestRequest(Method.GET);

                request.AddParameter("api_key", Settings.MovieDb_ApiKey);
                request.AddParameter("language", Settings.MovieDb_Language);
                request.AddParameter("query", title);
                request.AddParameter("page", "1");

                IRestResponse <MovieDbResponse> response = await client.ExecuteAsync <MovieDbResponse>(request);

                MovieDbResponse movieDbResponse = response.Data;

                if (movieDbResponse.results.Count < 1)
                {
                    return(movies);
                }

                foreach (MovieDbResult result in movieDbResponse.results)
                {
                    movies.Add(BuildMovieDto(result, genres));
                }
            }
            catch (Exception ex)
            {
                LogManager.GetCurrentClassLogger().Error(ex);
            }

            LogManager.GetCurrentClassLogger().Info($"Finished searching MovieDb for '{title}'.");

            return(movies.OrderByDescending(m => m.ReleaseDate));
        }