Add project
This commit is contained in:
19
Api/Extensions/PagingExtensions.cs
Normal file
19
Api/Extensions/PagingExtensions.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Common.Dtos.Common;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Api.Extensions;
|
||||
|
||||
public static class PagingExtensions
|
||||
{
|
||||
public static async Task<PagedList<T>> ToPagedListAsync<T>(this IQueryable<T> queryable, int pageNumber, int pageSize)
|
||||
{
|
||||
var query = queryable;
|
||||
int totalItemsCount = await queryable.CountAsync();
|
||||
int totalPagesCount = (totalItemsCount / pageSize) + 1;
|
||||
var number = Math.Min(pageNumber, totalPagesCount);
|
||||
int skip = (number - 1) * pageSize;
|
||||
|
||||
var items = await query.Skip(skip).Take(pageSize).ToArrayAsync();
|
||||
return new PagedList<T>(items, pageNumber, pageSize, totalItemsCount, totalPagesCount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user