public async Task <Listing> Next(Listing listing) { ListingParameters parameters = new ListingParameters { After = listing.After, Count = (listing.Parameters?.Count ?? 0) + listing.Children.Count, Limit = listing.Parameters?.Limit }; return(await GetListing(listing.NextPath, parameters)); }
private async Task <Listing> GetListing(string path, ListingParameters parameters) { StringBuilder pathBuilder = new StringBuilder(path); pathBuilder.Append("?show=all"); if (parameters != null) { if (!String.IsNullOrEmpty(parameters.After)) { pathBuilder.AppendFormat("&after={0}", parameters.After); } if (parameters.Count.HasValue) { pathBuilder.AppendFormat("&count={0}", parameters.Count.Value); } if (parameters.Limit.HasValue) { pathBuilder.AppendFormat("&limit={0}", parameters.Limit.Value); } } string pathWithParameters = pathBuilder.ToString(); await CheckToken(); Item response = await Get <Item>(pathWithParameters); if (response.Kind != ItemKind.Listing) { throw new Exception(String.Format("Expected Listing. Recieved '{0}' : {1}", response.KindString, response.Kind)); } Listing listing = response.Data.ToObject <Listing>(); listing.Reddit = this; listing.NextPath = path; listing.Parameters = parameters; return(listing); }
public async Task <Listing> ModQueue(string subreddit, ListingParameters parameters = null) { string path = String.IsNullOrEmpty(subreddit) ? "about/modqueue" : String.Format("r/{0}/about/modqueue", subreddit); return(await GetListing(path, parameters)); }