/// <summary> /// Returns a new paging object with the previous {limit} number of items /// Throws an IndexOutOfRangeException if there are no more items /// </summary> /// <returns></returns> public async Task <Paging <T> > GetPrevious(string accessToken) { if (string.IsNullOrWhiteSpace(Previous) || Offset <= 0) { throw new IndexOutOfRangeException($"Offset({Offset}) already at or below 0. There are no more items left to get"); } else /* There are items left to get, so return a new paging object with that offset*/ { HttpRequestMessage message = WebRequestHelpers.SetupRequest(this.Previous, accessToken); HttpResponseMessage response = await WebRequestHelpers.Client.SendAsync(message); if (response.IsSuccessStatusCode) { JToken token = await WebRequestHelpers.ParseJsonResponse(response.Content); Paging <T> paging = new Paging <T>(token); return(paging); } } return(null); }
/// <summary> /// Returns a new Cursor-Based Paging object with the next {Limit} number of items, /// starting after the {After} fields /// Throws an IndexOutOfRangeException if there are no more items /// </summary> /// <returns></returns> public async Task <CursorBasedPaging <T> > GetNext(string accessToken) { /* Offset is past the total - therefore there's nothing left to get */ if (string.IsNullOrWhiteSpace(Next)) { throw new IndexOutOfRangeException($"There are no more items left to get"); } else /* There are items left to get, so return a new paging object with that offset*/ { HttpRequestMessage message = WebRequestHelpers.SetupRequest(this.Next, accessToken); HttpResponseMessage response = await WebRequestHelpers.Client.SendAsync(message); if (response.IsSuccessStatusCode) { JToken token = await WebRequestHelpers.ParseJsonResponse(response.Content); CursorBasedPaging <T> paging = new CursorBasedPaging <T>(token); return(paging); } } return(null); }