Replaces IDocumentService/DocumentService. The permission-check and descendant-deletion logic moves to a shared DocumentAccess static helper used by all seven handlers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
18 lines
693 B
C#
18 lines
693 B
C#
using AutoMapper;
|
|
using MediatR;
|
|
using Mws.Application.Common;
|
|
|
|
namespace Mws.Application.Documents;
|
|
|
|
public record SearchDocumentsQuery(Guid UserId, string Term) : IRequest<List<DocumentNodeDto>>;
|
|
|
|
public class SearchDocumentsHandler(IUnitOfWork uow, IMapper mapper) : IRequestHandler<SearchDocumentsQuery, List<DocumentNodeDto>>
|
|
{
|
|
public async Task<List<DocumentNodeDto>> 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<List<DocumentNodeDto>>(results);
|
|
}
|
|
}
|