private static PaginationInfo CreatePageInfo(PageRequest paging, IEnumerable<Widget> all)
 {
     return new PaginationInfo(
         paging.Page,
         paging.AllowedPageSize(MaxPageSizeFromImaginaryConfiguration),
         all.Count());
 }
 public Task<IHttpActionResult> Get([FromUri] PageRequest paging = null)
 {
     if (paging == null) { paging = new PageRequest(); }
     var all = FetchData();
     var historyPage = PageData(paging, all);
     var pageInfo = CreatePageInfo(paging, all);
     var result = Ok(historyPage);
     Request.Properties[PaginationInfo.PropertyKey] = pageInfo;
     return new Task<IHttpActionResult>(() => Ok(result));
 }
 private static IList<Widget> PageData(PageRequest paging, IEnumerable<Widget> data)
 {
     return data.Page(paging.AllowedPageSize(MaxPageSizeFromImaginaryConfiguration), paging.Page).ToList();
 }