Refactor: Replace EmailAccountDto with EmailAccount

Replaced the `EmailAccountDto` class with the `EmailAccount` class across the codebase to consolidate the `EmailAccount` entity into the domain layer. Updated namespaces, method signatures, property types, and test cases to reflect this change.

Moved `EmailAccount` from `DigitalData.MessagingService.Application.Common.Dto` to `DigitalData.MessagingService.Domain.Entities`. Updated XML documentation and removed redundant project file entries. Adjusted namespaces for related queries, validators, and commands to align with the new structure.

These changes improve separation of concerns and align with domain-driven design principles.
This commit is contained in:
2026-08-12 15:26:15 +02:00
parent 91581649ba
commit b2857c558f
15 changed files with 41 additions and 37 deletions

View File

@@ -6,6 +6,7 @@ using Limilabs.Mail;
using Limilabs.Mail.Headers;
using DigitalData.MessagingService.Infrastructure.Services.Extensions;
using DigitalData.MessagingService.Application.Common.Dto;
using DigitalData.MessagingService.Domain.Entities;
namespace DigitalData.MessagingService.Infrastructure.Services;
@@ -13,7 +14,7 @@ namespace DigitalData.MessagingService.Infrastructure.Services;
/// Email service using Limilabs Mail.dll for SMTP operations (send-only).
/// Commercial-grade library with superior Exchange support.
/// SMTP configuration is injected via IOptions<EmailAccountsOptions> from appsettings.json.
/// Uses the first account in the list whose <see cref="EmailAccountDto.Name"/> equals <c>"default"</c>,
/// Uses the first account in the list whose <see cref="EmailAccount.Name"/> equals <c>"default"</c>,
/// or falls back to the first account if none is named "default".
/// </summary>
public class LimilabsEmailService() : IEmailService
@@ -70,7 +71,7 @@ public class LimilabsEmailService() : IEmailService
}
}
private static async Task ConnectAndAuthenticateSmtpAsync(Smtp smtp, EmailAccountDto smtpAccount)
private static async Task ConnectAndAuthenticateSmtpAsync(Smtp smtp, EmailAccount smtpAccount)
{
if (smtpAccount.SmtpUseSsl)
{

View File

@@ -1,6 +1,7 @@
using DigitalData.MessagingService.Application.Common.Dto;
using DigitalData.MessagingService.Application.Common.Dto.MailSearch;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Domain.Entities;
using DigitalData.MessagingService.Domain.Exceptions;
using DigitalData.MessagingService.Infrastructure.Services.Extensions;
using Limilabs.Client.IMAP;
@@ -26,7 +27,7 @@ public class LimilabsImapEmailService(ILogger<LimilabsImapEmailService> Logger,
// Public API
public async Task<IEnumerable<ReceivedEmailDto>> FetchEmailsAsync(
EmailAccountDto account,
EmailAccount account,
MailSearchFilter filter,
CancellationToken cancel = default)
{
@@ -188,7 +189,7 @@ public class LimilabsImapEmailService(ILogger<LimilabsImapEmailService> Logger,
}
public async Task MarkAsSeenAsync(
EmailAccountDto account,
EmailAccount account,
long uid,
string folder = "INBOX",
CancellationToken cancel = default)
@@ -213,7 +214,7 @@ public class LimilabsImapEmailService(ILogger<LimilabsImapEmailService> Logger,
}
}
private static async Task<Imap> OpenAsync(EmailAccountDto account, string folder, CancellationToken cancel)
private static async Task<Imap> OpenAsync(EmailAccount account, string folder, CancellationToken cancel)
{
var imap = new Imap();