Пример #1
0
        /* private DetailedMovie GetDetailMovie(TmdbMovie movie)
         * {
         *
         *   return new DetailedMovie
         *   {
         *       Id = movie.id,
         *       OriginalTitle = movie.original_title,
         *       ComposedTitle = GetTitle(movie),
         *       Overview = movie.overview,
         *       Score = movie.vote_average,
         *       VoteCount = movie.vote_count,
         *       ImdbId = movie.imdb_id,
         *       PosterUrl = GetUrl(movie),
         *       GenresCommaSeparated = GetGenresString(String.Join(", ", movie.genre_ids)),
         *       ReleaseDate = movie.release_date,
         *       Runtime = movie.runtime,
         *       Tagline = movie.tagline
         *   };
         * }
         *
         * private string GetUrl(TmdbMovie movie)
         * {
         *   return _tmdbConfiguration.images.base_url +_tmdbConfiguration.images.poster_sizes[3] + movie.poster_path;
         * }
         *
         * private string GetTitle(TmdbMovie movie)
         * {
         *   return string.Format("{0}{1}({2})", movie.title.Substring(0, Math.Min(movie.title.Length, AppConstants.MovieTitleMaxLength)),movie.title.Length > AppConstants.MovieTitleMaxLength ? "..." : " ", string.IsNullOrEmpty(movie.release_date) ? "N/A" : movie.release_date.Substring(0, 4));
         * }
         */
        public async Task <List <Books> > DiscoverBooks(DiscoverOption option)
        {
            try
            {
                var dscUrl = string.Empty;

                switch (option)
                {
                case DiscoverOption.Popular:
                    dscUrl = string.Format(AppConstants.BooksPopular);
                    break;

                    /* case DiscoverOption.HighestRated:
                     *   dscUrl = string.Format(AppConstants.TmdbMovieHighestRated, AppConstants.TmdbApiKey);
                     *   break;
                     * case DiscoverOption.InTheaters:
                     *   dscUrl = string.Format(AppConstants.TmdbMovieInTheaters, AppConstants.TmdbApiKey,
                     *                          DateTime.Today.AddMonths(-1).ToString("yyyy-MM-dd"),
                     *                          DateTime.Today.ToString("yyyy-MM-dd"));
                     *   break;
                     * case DiscoverOption.Upcoming:
                     *   dscUrl = string.Format(AppConstants.TmdbUpcomingMovies, AppConstants.TmdbApiKey);
                     *   break;
                     * default:
                     *   dscUrl = string.Format(AppConstants.TmdbMoviePopular, AppConstants.TmdbApiKey);
                     *   break;*/
                }

                var res = await BaseClient.GetAsync(dscUrl);

                res.EnsureSuccessStatusCode();

                var json = await res.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(json))
                {
                    return(null);
                }

                var books = JsonConvert.DeserializeObject <Book>(json);

                return(books.Books);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(typeof(BooksService).Name,
                                "Ooops! Something went wrong fetching information for: {0}. Exception: {1}", option.ToString(), ex);
                return(null);
            }
        }
Пример #2
0
        public async Task <List <DetailedMovie> > DiscoverMovie(DiscoverOption option)
        {
            try
            {
                var dscUrl = string.Empty;

                if (_genres == null)
                {
                    GetGenres();
                }

                switch (option)
                {
                case DiscoverOption.Popular:
                    dscUrl = string.Format(AppConstants.TmdbMoviePopular, AppConstants.TmdbApiKey);
                    break;

                case DiscoverOption.HighestRated:
                    dscUrl = string.Format(AppConstants.TmdbMovieHighestRated, AppConstants.TmdbApiKey);
                    break;

                case DiscoverOption.InTheaters:
                    dscUrl = string.Format(AppConstants.TmdbMovieInTheaters, AppConstants.TmdbApiKey,
                                           DateTime.Today.AddMonths(-1).ToString("yyyy-MM-dd"),
                                           DateTime.Today.ToString("yyyy-MM-dd"));
                    break;

                case DiscoverOption.Upcoming:
                    dscUrl = string.Format(AppConstants.TmdbUpcomingMovies, AppConstants.TmdbApiKey);
                    break;

                default:
                    dscUrl = string.Format(AppConstants.TmdbMoviePopular, AppConstants.TmdbApiKey);
                    break;
                }

                var res = await BaseClient.GetAsync(dscUrl);

                res.EnsureSuccessStatusCode();

                var json = await res.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(json))
                {
                    return(null);
                }

                var movies = JsonConvert.DeserializeObject <Movies>(json);
                await GetConfigurationIfNeeded();

                var movieList = movies.results.Select(movie => new DetailedMovie
                {
                    Id            = movie.id,
                    OriginalTitle = movie.original_title,
                    ComposedTitle = string.Format("{0}{1}({2})", movie.original_title.Substring(0, Math.Min(movie.original_title.Length, AppConstants.MovieTitleMaxLength)),
                                                  movie.original_title.Length > AppConstants.MovieTitleMaxLength
                                                                                                  ? "..." : " ", movie.release_date.Substring(0, 4)),
                    Overview  = movie.overview,
                    Score     = movie.vote_average,
                    VoteCount = movie.vote_count,
                    ImdbId    = movie.imdb_id,
                    PosterUrl = _tmdbConfiguration.images.base_url +
                                _tmdbConfiguration.images.poster_sizes[3] +
                                movie.poster_path,
                    GenresCommaSeparated = GetGenresString(String.Join(", ", movie.genre_ids)),
                    ReleaseDate          = movie.release_date,
                    Runtime = movie.runtime,
                    Tagline = movie.tagline
                }).ToList();

                return(movieList);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(typeof(TMDBMovieService).Name,
                                "Ooops! Something went wrong fetching information for: {0}. Exception: {1}", option.ToString(), ex);
                return(null);
            }
        }