private void AddPreviousPageLink(ICreateLinks links, int page, int pageSize)
 {
     if (page > 0)
     {
         this.AddLink(new PreviousPageLink(links.Create(new { page = page - 1, pageSize }), "Previous Page"));
     }
 }
 private void AddNextPageLink(ICreateLinks links, int page, int pageSize)
 {
     if (page < this.TotalPages - 1)
     {
         this.AddLink(new NextPageLink(links.Create(new { page = page + 1, pageSize }), "Next page"));
     }
 }
        public ResourceCollection(
            ICreateLinks links,
            IEnumerable <T> results)
        {
            var enumerable = results as T[] ?? results.ToArray();

            this.TotalCount  = enumerable.Length;
            this.TotalPages  = 1;
            this.CurrentPage = 0;
            this.PageSize    = enumerable.Length;
            this.Results     = enumerable;
            this.AddSelfLink(links, this.CurrentPage, this.PageSize);
        }
        public ResourceCollection(
            ICreateLinks links,
            IEnumerable <T> results,
            int totalCount,
            int page     = DefaultPage,
            int pageSize = MaxPageSize)
        {
            this.TotalCount  = totalCount;
            this.TotalPages  = (int)Math.Ceiling((double)this.TotalCount / pageSize);
            this.CurrentPage = page;
            this.PageSize    = pageSize;
            this.Results     = results;

            this.AddPreviousPageLink(links, page, pageSize);
            this.AddNextPageLink(links, page, pageSize);
            this.AddSelfLink(links, page, pageSize);
        }
 private void AddSelfLink(ICreateLinks links, int page, int pageSize)
 {
     this.AddLink(new SelfLink(links.Create(new { page, pageSize })));
 }