Files
sanstudent/Api/Extensions/PagingExtensions.cs
aherman-san b8f03bf6d3
All checks were successful
SanStudent Multi-Project Deployment / deploy-api (push) Successful in 41s
SanStudent Multi-Project Deployment / deploy-frontadmin (push) Successful in 41s
SanStudent Multi-Project Deployment / deploy-frontstudent (push) Successful in 40s
Add project
2026-03-07 11:14:26 +01:00

20 lines
700 B
C#

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);
}
}