/// <summary>
        /// Gets a paginated list of items for the given canned list.
        /// </summary>
        /// <param name="listName">Name of the canned list.</param>
        /// <param name="pageNumber">Page number.</param>
        /// <param name="pageSize">Page size.</param>
        /// <param name="options">Request specific api options. These will override the global settings for the app for this request.</param>
        /// <returns>Paginated list of canned list items.</returns>
        public static async Task <PagedList <ListItem> > GetListItemsAsync(string listName, int pageNumber = 1, int pageSize = 20, ApiOptions options = null)
        {
            var request = new GetListContentRequest
            {
                Name       = listName,
                PageNumber = pageNumber,
                PageSize   = pageSize
            };

            ApiOptions.Apply(request, options);
            var response = await request.ExecuteAsync();

            if (response.Status.IsSuccessful == false)
            {
                throw response.Status.ToFault();
            }
            var list = new PagedList <ListItem>()
            {
                PageNumber   = response.PagingInfo.PageNumber,
                PageSize     = response.PagingInfo.PageSize,
                TotalRecords = response.PagingInfo.TotalRecords,
                GetNextPage  = async skip => await GetListItemsAsync(listName, pageSize, pageNumber + skip + 1, options)
            };

            list.AddRange(response.Items);
            return(list);
        }
 public static async Task<PagedList<ListItem>> GetListItemsAsync(string listName, int page = 1, int pageSize = 20)
 {
     var request = new GetListContentRequest
     {
         Name = listName,
         PageNumber = page,
         PageSize = pageSize
     };
     var response = await request.ExecuteAsync();
     if (response.Status.IsSuccessful == false)
         throw response.Status.ToFault();
     var list = new PagedList<ListItem>()
     {
         PageNumber = response.PagingInfo.PageNumber,
         PageSize = response.PagingInfo.PageSize,
         TotalRecords = response.PagingInfo.TotalRecords,
         GetNextPage = async skip => await GetListItemsAsync(listName, pageSize, page + skip + 1)
     };
     list.AddRange(response.Items);
     return list;
 }