Files
DocumentService/DocumentService.Application/CheckPdfAttachments/Queries/CheckPdfAttachmentsQuery.cs
TekH 207c778f3a Refactor: Rename DocumentOperator to DocumentService
Updated project and solution files to rename and restructure
`DocumentOperator` to `DocumentService`. Modified project
references in `DocumentService.API.csproj`, `DocumentService.Application.csproj`,
and `DocumentService.Infrastructure.csproj` to reflect the new
naming convention. Updated `DocumentService.sln` to remove
old project references, add new ones, and adjust configuration
and nested project mappings accordingly. This change aligns
the project structure with the new naming convention.
2026-08-30 21:33:25 +02:00

38 lines
1.3 KiB
C#

using AutoMapper;
using DocumentService.Application.Common.DTOs;
using DocumentService.Application.Common.Interfaces;
using MediatR;
namespace DocumentService.Application.CheckPdfAttachments.Queries;
/// <summary>
/// Query for checking PDF attachments (Stream-based)
/// </summary>
public record CheckPdfAttachmentsQuery : IRequest<AttachmentCheckResult>
{
/// <summary>
/// PDF as stream (caller is responsible for disposal)
/// </summary>
public required Stream PdfStream { get; init; }
}
/// <summary>
/// Handler for CheckPdfAttachmentsQuery
/// Orchestrates PDF attachment checking using IPdfProcessor and AutoMapper
/// </summary>
public class CheckPdfAttachmentsQueryHandler(IPdfProcessor PdfProcessor, IMapper Mapper)
: IRequestHandler<CheckPdfAttachmentsQuery, AttachmentCheckResult>
{
/// <summary>
/// Checks PDF attachments and returns detailed metadata
/// </summary>
public async Task<AttachmentCheckResult> Handle(CheckPdfAttachmentsQuery request, CancellationToken cancellationToken)
{
// Call DevExpress service directly with stream (exceptions propagate naturally)
var attachmentInfo = await PdfProcessor.CheckAttachmentsAsync(request.PdfStream);
// Map DTO to response DTO using AutoMapper
return Mapper.Map<AttachmentCheckResult>(attachmentInfo);
}
}