using AutoMapper; using MediatR; using Mws.Application.Common; namespace Mws.Application.Documents; public record SearchDocumentsQuery(Guid UserId, string Term) : IRequest>; public class SearchDocumentsHandler(IUnitOfWork uow, IMapper mapper) : IRequestHandler> { public async Task> Handle(SearchDocumentsQuery query, CancellationToken ct) { var projectIds = await uow.Projects.GetDocumentViewableProjectIdsAsync(query.UserId, ct); var results = await uow.Documents.SearchAsync(projectIds, query.Term, 20, ct); return mapper.Map>(results); } }