/// <summary> /// Gets the user's watchlist containing movies, shows, seasons and / or episodes. /// <para>OAuth authorization required.</para> /// <para> /// See <a href="http://docs.trakt.apiary.io/#reference/sync/get-watchlist/get-watchlist">"Trakt API Doc - Sync: Get Watchlist"</a> for more information. /// </para> /// </summary> /// <param name="watchlistItemType">Determines, which type of watchlist items should be queried. See also <seealso cref="TraktSyncItemType" />.</param> /// <param name="sortOrder">Determines the sort order of the returned watchlist items. See also <seealso cref="TraktWatchlistSortOrder" />.</param> /// <param name="extendedInfo"> /// The extended info, which determines how much data about the watchlist items should be queried. /// See also <seealso cref="TraktExtendedInfo" />. /// </param> /// <param name="pagedParameters">Specifies pagination parameters. <see cref="TraktPagedParameters" />.</param> /// <param name="cancellationToken"> /// Propagates notification that the request should be canceled.<para/> /// If provided, the exception <see cref="OperationCanceledException" /> should be catched. /// </param> /// <returns> /// An <see cref="TraktPagedResponse{ITraktWatchlistItem}"/> instance containing the queried watchlist items 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="ITraktWatchlistItem" />. /// </para> /// </returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> public Task <TraktPagedResponse <ITraktWatchlistItem> > GetWatchlistAsync(TraktSyncItemType watchlistItemType = null, TraktWatchlistSortOrder sortOrder = null, TraktExtendedInfo extendedInfo = null, TraktPagedParameters pagedParameters = null, CancellationToken cancellationToken = default) { var requestHandler = new RequestHandler(Client); return(requestHandler.ExecutePagedRequestAsync(new SyncWatchlistRequest { Type = watchlistItemType, Sort = sortOrder, ExtendedInfo = extendedInfo, Page = pagedParameters?.Page, Limit = pagedParameters?.Limit }, cancellationToken)); }
/// <summary> /// Gets an user's personal recommendations for movies and / or shows. /// <para>OAuth authorization required.</para> /// <para> /// See <a href="https://trakt.docs.apiary.io/#reference/sync/get-personal-recommendations/get-personal-recommendations">"Trakt API Doc - Sync: Personal Recommendations"</a> for more information. /// </para> /// </summary> /// <param name="recommendationObjectType">Determines, which type of recommendation items should be queried. See also <seealso cref="TraktRecommendationObjectType" />.</param> /// <param name="sortOrder"> /// The recommendations sort order. See also <seealso cref="TraktWatchlistSortOrder" />. /// Will be ignored, if the given array contains a number higher than 10 or below 1 or if it contains more than ten numbers. /// Will be ignored, if the given <paramref name="recommendationObjectType" /> is null or unspecified. /// </param> /// <param name="extendedInfo"> /// The extended info, which determines how much data about the recommendation items should be queried. /// See also <seealso cref="TraktExtendedInfo" />. /// </param> /// <param name="pagedParameters">Specifies pagination parameters. <see cref="TraktPagedParameters" />.</param> /// <param name="cancellationToken"> /// Propagates notification that the request should be canceled.<para/> /// If provided, the exception <see cref="OperationCanceledException" /> should be catched. /// </param> /// <returns>A list of <see cref="ITraktRecommendation" /> instances.</returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> public Task <TraktPagedResponse <ITraktRecommendation> > GetPersonalRecommendationsAsync(TraktRecommendationObjectType recommendationObjectType = null, TraktWatchlistSortOrder sortOrder = null, TraktExtendedInfo extendedInfo = null, TraktPagedParameters pagedParameters = null, CancellationToken cancellationToken = default) { var requestHandler = new RequestHandler(Client); return(requestHandler.ExecutePagedRequestAsync(new SyncPersonalRecommendationsRequest { Type = recommendationObjectType, Sort = sortOrder, ExtendedInfo = extendedInfo, Page = pagedParameters?.Page, Limit = pagedParameters?.Limit }, cancellationToken)); }