using MediatR; using AdsManagerService.Domain.AggregatesModel.SampleAggregate; namespace AdsManagerService.API.Application.Queries; /// /// EN: Handler for GetSampleQuery. /// VI: Handler cho GetSampleQuery. /// public class GetSampleQueryHandler : IRequestHandler { private readonly ISampleRepository _sampleRepository; public GetSampleQueryHandler(ISampleRepository sampleRepository) { _sampleRepository = sampleRepository ?? throw new ArgumentNullException(nameof(sampleRepository)); } public async Task Handle( GetSampleQuery request, CancellationToken cancellationToken) { var sample = await _sampleRepository.GetAsync(request.SampleId); if (sample is null) { return null; } return new SampleViewModel( sample.Id, sample.Name, sample.Description, sample.Status.Name, sample.CreatedAt, sample.UpdatedAt ); } }