using AutoMapper; using MediatR; using mws.backend.dotnet.application.Common; namespace mws.backend.dotnet.application.Projects; public record GetProjectsQuery(ProjectListFilter Filter, int Page, int PageSize) : IRequest>; public class GetProjectsHandler(IUnitOfWork uow, IMapper mapper) : IRequestHandler> { public async Task> Handle(GetProjectsQuery query, CancellationToken ct) { var projects = await uow.Projects.GetForUserAsync(query.Filter, query.Page, query.PageSize, ct); return new PagedResult { Items = mapper.Map>(projects.Items), TotalCount = projects.TotalCount, Page = projects.Page, PageSize = projects.PageSize, }; } }