crystoline/netcorepaginator

Pagination library for Asp.NetCoreMvc


License
MIT

Documentation

netcorepaginator

Pagination library for Asp.NetCoreMvc

#Installation composer require crystoline/netcorepaginator or https://github.com/crystoline/netcorepaginator.git ##Usage/Examples

In Controller

 public class InvoiceController : BusinessBase
{
    public IPaginate<MyModel> MyModelPaginateService { get; }
    private readonly IUrlHelper _urlHelper;

    public InvoiceController(ApplicationDbContext context, IUrlHelper urlHelper, IPaginate<MyModel> myModelPaginateService) :
    {
        this.MyModelPaginateService = myModelPaginateService;
        this._urlHelper = urlHelper;
    }
	
    public IActionResult All([FromRoute ]Guid Id, [FromQuery] PagingParams pagingParams)
	{
        IQueryable<MyModel> data = _context.MyModels.Where(i => i.Id == Id);
        var pagedList = new PagedList<MyModel>(data, pagingParams);
        var pages = new PaginateResponse<MyModel>(pagedList, "All", _urlHelper);
        return Ok(pages);
    }
}

Response

{
"paging": {
    "totalItems": Int,
    "pageNumber": Int,
    "pageSize": Int,
    "totalPages": Int
},
"links": [
    {
        "pageNumber": Int,
        "href": "urlpath?PageNumber=3&PageSize=1",
        "rel": "previous",
        "method": "GET"
    },
    {
        "pageNumber": Int,
        "href": "urlpath?PageNumber=3&PageSize=2",
        "rel": "self",
        "method": "GET"
    },
	{
        "pageNumber": Int,
        "href": "urlpath?PageNumber=3&PageSize=3",
        "rel": "next",
        "method": "GET"
    },
],
"data": {
    "totalItems": Int,
    "pageNumber": Int,
    "pageSize": Int,
    "list": [], //List Records here
    "totalPages": Int,
    "hasPreviousPage": bool,
    "hasNextPage": bool,
    "nextPageNumber": Int,
    "previousPageNumber": Int,
    "from": Int,
    "to": Int
}

}