using Application.Abstractions.Data; using Application.Abstractions.Messaging; using Microsoft.EntityFrameworkCore; namespace Application.Features.Admin.Mail.Get; public sealed class Handler(IAppDbContext db) : IQueryHandler { public async Task Handle(Query request, CancellationToken ct) { var entity = await db.EmailLog.AsNoTracking().FirstOrDefaultAsync(x => x.ID == request.ID, ct); if (entity is null) { return null; } return new Response { ID = entity.ID, ToAddress = entity.ToAddress, Subject = entity.Subject, MessageHtml = entity.MessageHtml, MessageText = entity.MessageText, Status = (byte)entity.Status, StatusName = entity.Status.ToString(), RetryCount = entity.RetryCount, MaxRetryCount = entity.MaxRetryCount, NextRetryAt = entity.NextRetryAt, LastError = entity.LastError, Category = entity.Category, CreatedAt = entity.CreatedAt, ProcessedAt = entity.ProcessedAt, FailedAt = entity.FailedAt }; } }