Handler.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Admin.Mail.Get;
  5. public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response?>
  6. {
  7. public async Task<Response?> Handle(Query request, CancellationToken ct)
  8. {
  9. var entity = await db.EmailLog.AsNoTracking().FirstOrDefaultAsync(x => x.ID == request.ID, ct);
  10. if (entity is null)
  11. {
  12. return null;
  13. }
  14. return new Response
  15. {
  16. ID = entity.ID,
  17. ToAddress = entity.ToAddress,
  18. Subject = entity.Subject,
  19. MessageHtml = entity.MessageHtml,
  20. MessageText = entity.MessageText,
  21. Status = (byte)entity.Status,
  22. StatusName = entity.Status.ToString(),
  23. RetryCount = entity.RetryCount,
  24. MaxRetryCount = entity.MaxRetryCount,
  25. NextRetryAt = entity.NextRetryAt,
  26. LastError = entity.LastError,
  27. Category = entity.Category,
  28. CreatedAt = entity.CreatedAt,
  29. ProcessedAt = entity.ProcessedAt,
  30. FailedAt = entity.FailedAt
  31. };
  32. }
  33. }