From 52a416f6d96fea2a60340076146b7e64f4051a7c Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 7 Aug 2026 12:51:32 +0200 Subject: [PATCH] Refactor FetchEmailsQuery and improve UID handling Moved the `Folder` property from `FetchEmailsQuery` to the `MailQuery` record to better encapsulate query parameters. Updated `FetchEmailsQueryHandler` to use `MailQuery.Folder` for improved modularity. Simplified UID limiting logic in `LimilabsImapEmailService` by replacing `Take().ToList()` with the more concise `[.. Take()]` syntax. --- .../EmailReceiving/Queries/FetchEmailsQuery.cs | 12 ++++++------ .../Services/LimilabsImapEmailService.cs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs b/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs index 070d12b..8461fc6 100644 --- a/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs +++ b/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs @@ -16,11 +16,6 @@ public record FetchEmailsQuery : IRequest> /// public required GetSenderQuery Account { get; init; } - /// - /// Mailbox folder to read from (default: "INBOX"). - /// - public string Folder { get; init; } = "INBOX"; - /// /// Mail query used to filter and limit the emails retrieved. /// @@ -28,6 +23,11 @@ public record FetchEmailsQuery : IRequest> public record MailQuery { + /// + /// Mailbox folder to read from (default: "INBOX"). + /// + public string Folder { get; init; } = "INBOX"; + /// /// When returns only unread messages. /// @@ -56,7 +56,7 @@ public class FetchEmailsQueryHandler( return await ImapService.FetchEmailsAsync( account, - request.Folder, + request.Mail.Folder, request.Mail.UnseenOnly, request.Mail.MaxCount, cancellationToken); diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs index a9f7e7c..d97b32b 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs @@ -44,7 +44,7 @@ public class LimilabsImapEmailService( // Most-recent first; honour maxCount uids.Reverse(); if (maxCount > 0 && uids.Count > maxCount) - uids = uids.Take(maxCount).ToList(); + uids = [.. uids.Take(maxCount)]; var results = new List(uids.Count);