Argon.Extensions.Pagination 8.5.0
Argon.Extensions.Pagination
Pagination extensions for collections and LINQ queries.
📦 Installation
dotnet add package Argon.Extensions.Pagination
✨ Features
Page<T>andPageQueryclasses to handle paginationPaginate()extension forIQueryable<T>- Automatic validation of pagination parameters
- Automatic calculation of total pages
🚀 Usage
Simple pagination
using Argon.Extensions.Pagination;
var query = dbContext.Users.Where(u => u.IsActive);
// Pagination with index and limit
var page = query.Paginate(index: 0, limit: 10);
Console.WriteLine($"Page {page.Index + 1}/{page.TotalPages}");
Console.WriteLine($"Total items: {page.TotalItems}");
foreach (var user in page.Items)
{
Console.WriteLine(user.Name);
}
Using PageQuery
var pageQuery = new PageQuery
{
Index = 0,
Limit = 10
};
var page = query.Paginate(pageQuery);
Example with API Controller
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
private readonly AppDbContext _context;
public UsersController(AppDbContext context)
{
_context = context;
}
[HttpGet]
public ActionResult<Page<User>> GetUsers([FromQuery] PageQuery pageQuery)
{
var users = _context.Users
.Where(u => u.IsActive)
.Paginate(pageQuery);
return Ok(users);
}
}
📝 API Reference
Page<T>
Represents a page of results.
Properties:
Index: Page index (0-based)Size: Number of items per pageTotalPages: Total number of pagesTotalItems: Total number of itemsItems: Collection of items in the page
Static methods:
Empty<T>(): Creates an empty page
PageQuery
Pagination parameters.
Properties:
Index: Page index (≥ 0)Limit: Number of items per page (≥ 1)
QueryableExtension Extensions
Methods:
Paginate<T>(this IQueryable<T> queryable, int index, int limit): Paginates a queryPaginate<T>(this IQueryable<T> queryable, PageQuery query): Paginates a query with a PageQuery object
Exceptions:
ArgumentOutOfRangeException: IfIndex < 0orLimit < 1
🔗 Links
Showing the top 20 packages that depend on Argon.Extensions.Pagination.
| Packages | Downloads |
|---|---|
|
Argon.Extensions.Pagination.EntityFrameworkCore
Entity Framework Core pagination extensions designed for Argon services
|
91 |
|
Argon.Extensions.Pagination.EntityFrameworkCore
Entity Framework Core pagination extensions designed for Argon services
|
8 |
|
Argon.Extensions.Pagination.EntityFrameworkCore
Entity Framework Core pagination extensions designed for Argon services
|
2 |
.NET 8.0
- No dependencies.