using AutoMapper; using MediatR; using mws.backend.dotnet.application.Common; namespace mws.backend.dotnet.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); } }