using Application.Common.Services.FileImageManager; using FluentValidation; using MediatR; namespace Application.Features.FileImageManager.Queries; public class GetImageResult { public byte[]? Data { get; init; } } public class GetImageRequest : IRequest { public string? ImageName { get; init; } } public class GetImageValidator : AbstractValidator { public GetImageValidator() { RuleFor(x => x.ImageName) .NotEmpty(); } } public class GetImageHandler : IRequestHandler { private readonly IFileImageService _imageService; public GetImageHandler(IFileImageService imageService) { _imageService = imageService; } public async Task Handle(GetImageRequest request, CancellationToken cancellationToken) { var result = await _imageService.GetFileAsync(request.ImageName ?? "", cancellationToken); return new GetImageResult { Data = result }; } }