28 lines
963 B
C#
28 lines
963 B
C#
using DigitalData.EmailProfiler.Application.Interfaces.Repositories;
|
|
using DigitalData.EmailProfiler.Domain.Entities;
|
|
using MediatR;
|
|
|
|
namespace DigitalData.EmailProfiler.Application.EmailProfiles.Commands;
|
|
|
|
/// <summary>
|
|
/// Command to update an existing email profile.
|
|
/// </summary>
|
|
public record UpdateEmailProfileCommand : IRequest<int>
|
|
{
|
|
public int Id { get; init; }
|
|
public string ProfileName { get; init; } = string.Empty;
|
|
public string? ValidationSql { get; init; }
|
|
public int PollIntervalMinutes { get; init; }
|
|
public bool IsActive { get; init; }
|
|
}
|
|
|
|
public class UpdateEmailProfileCommandHandler(IRepository<EmailProfile> repository)
|
|
: IRequestHandler<UpdateEmailProfileCommand, int>
|
|
{
|
|
public async Task<int> Handle(UpdateEmailProfileCommand request, CancellationToken cancellationToken)
|
|
{
|
|
await repository.UpdateSingleAsync(p => p.Id == request.Id, request, cancellationToken);
|
|
return request.Id;
|
|
}
|
|
}
|