27 lines
915 B
C#
27 lines
915 B
C#
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;
|
|
|
|
/// <summary>
|
|
/// Query to get email account by ID.
|
|
/// </summary>
|
|
public record GetEmailAccountByIdQuery(int Id) : IRequest<EmailAccountDto?>;
|
|
|
|
public class GetEmailAccountByIdQueryHandler(
|
|
IRepository<EmailAccount> repository,
|
|
IMapper mapper)
|
|
: IRequestHandler<GetEmailAccountByIdQuery, EmailAccountDto?>
|
|
{
|
|
public async Task<EmailAccountDto?> Handle(
|
|
GetEmailAccountByIdQuery request,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
var account = await repository.GetByIdAsync(request.Id, cancellationToken);
|
|
return account != null ? mapper.Map<EmailAccountDto>(account) : null;
|
|
}
|
|
}
|