using AutoMapper;
using DigitalData.EmailProfiler.Application.Common.Dtos;
using DigitalData.EmailProfiler.Application.Interfaces.Repositories;
using DigitalData.EmailProfiler.Domain.Entities;
using MediatR;
namespace DigitalData.EmailProfiler.Application.EmailAccounts.Queries;
///
/// Query to get email account by ID.
///
public record GetEmailAccountByIdQuery(int Id) : IRequest;
public class GetEmailAccountByIdQueryHandler(
IRepository repository,
IMapper mapper)
: IRequestHandler
{
public async Task Handle(
GetEmailAccountByIdQuery request,
CancellationToken cancellationToken)
{
var account = await repository.GetByIdAsync(request.Id, cancellationToken);
return account != null ? mapper.Map(account) : null;
}
}