コード例 #1
0
        // -------------------------------------------------------------
        // Most Watched Movies

        public async Task <PaginationList <MostPWCMovie> > GetMostWatchedMoviesAsync(TraktExtendedInfo extendedInfo = null,
                                                                                     TraktMovieFilter movieFilter   = null,
                                                                                     TraktTimePeriod period         = null,
                                                                                     int?whichPage = null, int?limitPerPage = null)
        {
            var traktResults = await Client.Movies.GetMostWatchedMoviesAsync(period, extendedInfo, movieFilter, whichPage, limitPerPage);

            var results = new PaginationList <MostPWCMovie>
            {
                CurrentPage    = traktResults.Page,
                TotalPages     = traktResults.PageCount,
                LimitPerPage   = traktResults.Limit,
                TotalItemCount = traktResults.ItemCount,
                TotalUserCount = traktResults.UserCount
            };

            results.Items = new ObservableCollection <MostPWCMovie>();

            foreach (var traktMostWatchedMovie in traktResults)
            {
                var mostWatchedMovie = MovieModelConverter.Convert <MostPWCMovie>(traktMostWatchedMovie.Movie);

                if (mostWatchedMovie != null)
                {
                    mostWatchedMovie.WatcherCount   = traktMostWatchedMovie.WatcherCount.GetValueOrDefault();
                    mostWatchedMovie.PlayCount      = traktMostWatchedMovie.PlayCount.GetValueOrDefault();
                    mostWatchedMovie.CollectedCount = traktMostWatchedMovie.CollectedCount.GetValueOrDefault();

                    results.Items.Add(mostWatchedMovie);
                }
            }

            return(results);
        }
コード例 #2
0
        // -------------------------------------------------------------
        // Most Played Shows

        public async Task <PaginationList <MostPWCShow> > GetMostPlayedShowsAsync(TraktExtendedInfo extendedInfo = null,
                                                                                  TraktShowFilter showFilter     = null,
                                                                                  TraktTimePeriod period         = null,
                                                                                  int?whichPage = null, int?limitPerPage = null)
        {
            var traktResults = await Client.Shows.GetMostPlayedShowsAsync(period, extendedInfo, showFilter, whichPage, limitPerPage);

            var results = new PaginationList <MostPWCShow>
            {
                CurrentPage    = traktResults.Page,
                TotalPages     = traktResults.PageCount,
                LimitPerPage   = traktResults.Limit,
                TotalItemCount = traktResults.ItemCount,
                TotalUserCount = traktResults.UserCount
            };

            results.Items = new ObservableCollection <MostPWCShow>();

            foreach (var traktMostPlayedShow in traktResults)
            {
                var mostPlayedShow = ShowModelConverter.Convert <MostPWCShow>(traktMostPlayedShow.Show);

                if (mostPlayedShow != null)
                {
                    mostPlayedShow.WatcherCount   = traktMostPlayedShow.WatcherCount.GetValueOrDefault();
                    mostPlayedShow.PlayCount      = traktMostPlayedShow.PlayCount.GetValueOrDefault();
                    mostPlayedShow.CollectedCount = traktMostPlayedShow.CollectedCount.GetValueOrDefault();
                    mostPlayedShow.CollectorCount = traktMostPlayedShow.CollectorCount.GetValueOrDefault();

                    results.Items.Add(mostPlayedShow);
                }
            }

            return(results);
        }
コード例 #3
0
        public async Task <IEnumerable <TraktMostWatchedShow> > GetMostWatchesShows(TraktTimePeriod period = null, int?page = null, int?limitPerPage = null)
        {
            var anticipatedShows = await Client.Shows.GetMostWatchedShowsAsync(period ?? TraktTimePeriod.Monthly, new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10);

            return(anticipatedShows.Items);
        }
コード例 #4
0
        public void TestTraktTimePeriodIsTraktEnumeration()
        {
            var enumeration = new TraktTimePeriod();

            enumeration.Should().BeAssignableTo <TraktEnumeration>();
        }
コード例 #5
0
        /// <summary>
        /// Gets the most collected shows.
        /// <para>OAuth authorization not required.</para>
        /// <para>
        /// See <a href="http://docs.trakt.apiary.io/#reference/shows/collected/get-the-most-collected-shows">"Trakt API Doc - Shows: Collected"</a> for more information.
        /// </para>
        /// </summary>
        /// <param name="period">The time period, for which the most collected shows should be queried. See also <seealso cref="TraktTimePeriod" />.</param>
        /// <param name="extendedInfo">
        /// The extended info, which determines how much data about the shows should be queried.
        /// See also <seealso cref="TraktExtendedInfo" />.
        /// </param>
        /// <param name="filter">Optional filters for genres, languages, year, runtimes, ratings, etc. See also <seealso cref="TraktShowFilter" />.</param>
        /// <param name="pagedParameters"></param>
        /// <param name="cancellationToken"></param>
        /// <returns>
        /// An <see cref="TraktPagedResponse{ITraktMostPWCShow}"/> instance containing the queried most collected shows and which also
        /// contains the queried page number, the page's item count, maximum page count and maximum item count.
        /// <para>
        /// See also <seealso cref="TraktPagedResponse{ListItem}" /> and <seealso cref="ITraktMostPWCShow" />.
        /// </para>
        /// </returns>
        /// <exception cref="TraktException">Thrown, if the request fails.</exception>
        public Task <TraktPagedResponse <ITraktMostPWCShow> > GetMostCollectedShowsAsync(TraktTimePeriod period               = null,
                                                                                         TraktExtendedInfo extendedInfo       = null,
                                                                                         TraktShowFilter filter               = null,
                                                                                         TraktPagedParameters pagedParameters = null,
                                                                                         CancellationToken cancellationToken  = default)
        {
            var requestHandler = new RequestHandler(Client);

            return(requestHandler.ExecutePagedRequestAsync(new ShowsMostCollectedRequest
            {
                Period = period,
                ExtendedInfo = extendedInfo,
                Filter = filter,
                Page = pagedParameters?.Page,
                Limit = pagedParameters?.Limit
            },
                                                           cancellationToken));
        }
コード例 #6
0
 public async Task <TraktPaginationListResult <TraktMostCollectedShow> > GetMostCollectedShowsAsync(TraktTimePeriod period         = null,
                                                                                                    TraktExtendedInfo extendedInfo = null,
                                                                                                    TraktShowFilter filter         = null,
                                                                                                    int?page = null, int?limitPerPage = null)
 => await QueryAsync(new TraktShowsMostCollectedRequest(Client)
 {
     Period            = period,
     ExtendedInfo      = extendedInfo,
     Filter            = filter,
     PaginationOptions = new TraktPaginationOptions(page, limitPerPage)
 });