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
);
}
}