internal TraktSyncHistoryRequest(TraktClient Client, TraktHistoryItemType Type = TraktHistoryItemType.Unspecified, int?Id = null, int?Page = null, int?Limit = null, DateTimeOffset?From = null, DateTimeOffset?To = null) : base(Client)
        {
            this.Id    = Id;
            this.Type  = Type;
            this.Page  = Page;
            this.Limit = Limit;
            this.From  = From;
            this.To    = To;

            Template = "sync/history";

            if (Type != TraktHistoryItemType.Unspecified)
            {
                Template += $"/{Helpers.TraktEnumHelper.GetDescription(Type)}";
            }

            if (Id != null)
            {
                Template += $"/{Id}";
            }

            Dictionary <string, string> QuerySet = new Dictionary <string, string>();

            if (From != null)
            {
                QuerySet.Add("start_at", From.Value.ToString("yyyy-MM-ddTHH:mm:ssK", System.Globalization.CultureInfo.InvariantCulture));
            }

            if (To != null)
            {
                QuerySet.Add("end_at", To.Value.ToString("yyyy-MM-ddTHH:mm:ssK", System.Globalization.CultureInfo.InvariantCulture));
            }

            if (Page != null)
            {
                QuerySet.Add("page", Page.Value.ToString());
            }

            if (Limit != null)
            {
                QuerySet.Add("limit", Limit.Value.ToString());
            }

            if (QuerySet.Any())
            {
                Template += "?";
                Template += string.Join("&", QuerySet.Select(query => $"{query.Key}={query.Value}"));
            }
        }
Exemple #2
0
 /// <summary>
 /// Returns movies and episodes that a user has watched, sorted by most recent.
 /// </summary>
 /// <param name="Type">Media object type</param>
 /// <param name="From">What date to fetch history from</param>
 /// <param name="To">What date to stop fetching history from</param>
 /// <param name="Id">Media object ID to get history for.</param>
 /// <param name="Page">Page to fetch (Based on Limit size)</param>
 /// <param name="Limit">Limit per Page</param>
 /// <returns></returns>
 public async Task <IEnumerable <TraktSyncHistoryResponse> > GetHistoryAsync(TraktHistoryItemType Type, DateTimeOffset?From = null, DateTimeOffset?To = null, int?Id = null, int?Page = null, int?Limit = null)
 {
     return(await SendAsync(new TraktSyncHistoryRequest(Client, Type, Id, Page, Limit, From, To)));
 }