Adding
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.IncentiveApiModels.Common
|
||||
{
|
||||
public class PagedResponse<T> where T : class
|
||||
{
|
||||
public PagedResponse() { }
|
||||
|
||||
public PagedResponse(PagedResult<T> pagedResult, PageFilter filter, IUrlHelper url, HttpRequest request, string uriAction = "Get")
|
||||
{
|
||||
TotalItems = pagedResult.Total;
|
||||
Items = pagedResult.Items;
|
||||
CurrentPage = filter.Page;
|
||||
TotalPages = pagedResult.Total == 0 ? 1 : (int) Math.Ceiling((decimal) pagedResult.Total / filter.Limit);
|
||||
|
||||
PageFilter newFilter = filter.Clone() as PageFilter;
|
||||
if (pagedResult.Total > (filter.Page * filter.Limit))
|
||||
{
|
||||
newFilter.Page = filter.Page + 1;
|
||||
NextPage = new Uri(url.Action(uriAction, null, newFilter, request.Scheme));
|
||||
}
|
||||
|
||||
if (filter.Page > 1)
|
||||
{
|
||||
newFilter.Page = filter.Page - 1;
|
||||
PreviousPage = new Uri(url.Action(uriAction, null, newFilter, request.Scheme));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public IEnumerable<T> Items { get; set; }
|
||||
public Uri NextPage { get; set; }
|
||||
public Uri PreviousPage { get; set; }
|
||||
public int TotalItems { get; set; }
|
||||
public int CurrentPage { get; set; }
|
||||
public int TotalPages { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user