ref: project structure

This commit is contained in:
2026-08-19 23:25:08 +07:00
parent 05a93cfc09
commit a1fe31cf70
155 changed files with 3339 additions and 1007 deletions
@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore;
using mws.backend.dotnet.application.Common;
namespace mws.backend.dotnet.infrastructure.Persistence;
public static class PaginationExtensions
{
public const int DefaultPageSize = 20;
public const int MaxPageSize = 100;
public static async Task<PagedResult<T>> ToPagedResultAsync<T>(
this IQueryable<T> query, int page, int pageSize, CancellationToken ct = default)
{
page = page < 1 ? 1 : page;
pageSize = pageSize < 1 ? DefaultPageSize : Math.Min(pageSize, MaxPageSize);
var totalCount = await query.CountAsync(ct);
var items = await query.Skip((page - 1) * pageSize).Take(pageSize).ToListAsync(ct);
return new PagedResult<T> { Items = items, TotalCount = totalCount, Page = page, PageSize = pageSize };
}
}