diff --git a/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IImapEmailService.cs b/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IImapEmailService.cs index f67a0b4..0fd507f 100644 --- a/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IImapEmailService.cs +++ b/src/core/DigitalData.MessagingService.Application/Common/Interfaces/IImapEmailService.cs @@ -13,12 +13,10 @@ public interface IImapEmailService /// /// Account whose IMAP settings will be used. /// Filter to apply when fetching emails. - /// When , attachment data is included in the results; otherwise attachments are omitted. Defaults to . /// Cancellation token. Task> FetchEmailsAsync( EmailAccountDto account, MailSearchFilter filter, - bool withAttachments = false, CancellationToken cancellationToken = default); /// diff --git a/src/core/DigitalData.MessagingService.Application/Common/Models/MailSearch/MailSearchFilter.cs b/src/core/DigitalData.MessagingService.Application/Common/Models/MailSearch/MailSearchFilter.cs index 9f37b3d..70e31a6 100644 --- a/src/core/DigitalData.MessagingService.Application/Common/Models/MailSearch/MailSearchFilter.cs +++ b/src/core/DigitalData.MessagingService.Application/Common/Models/MailSearch/MailSearchFilter.cs @@ -25,6 +25,12 @@ public record MailSearchFilter /// public bool HasAttachments { get; init; } = false; + /// + /// When , attachment data is included in the results; otherwise attachments are omitted. + /// Defaults to . + /// + public bool WithAttachments { get; init; } = false; + /// /// Maximum number of messages to retrieve. 0 means unlimited. /// Applied after sorting; defaults to 50. diff --git a/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs b/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs index bba1e4d..9b1a6bb 100644 --- a/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs +++ b/src/core/DigitalData.MessagingService.Application/EmailReceiving/Queries/FetchEmailsQuery.cs @@ -21,12 +21,6 @@ public record FetchEmailsQuery : IRequest> /// Mail query used to filter and limit the emails retrieved. /// public MailSearchFilter Mail { get; init; } = new(); - - /// - /// When , attachment data is included in the results; otherwise attachments are omitted. - /// Defaults to . - /// - public bool WithAttachments { get; init; } = false; } public class FetchEmailsQueryHandler( @@ -46,7 +40,6 @@ public class FetchEmailsQueryHandler( return await ImapService.FetchEmailsAsync( account, request.Mail, - request.WithAttachments, cancellationToken); } } diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs index 318e987..6fec386 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/LimilabsImapEmailService.cs @@ -27,7 +27,6 @@ public class LimilabsImapEmailService( public async Task> FetchEmailsAsync( EmailAccountDto account, MailSearchFilter filter, - bool withAttachments = false, CancellationToken cancellationToken = default) { using var imap = new Imap(); @@ -104,7 +103,7 @@ public class LimilabsImapEmailService( if (filter.HasAttachments && mail.Attachments.Count == 0 && mail.Visuals.Count == 0) continue; - results.Add(MapToContext(uid, mail, flags, withAttachments)); + results.Add(MapToContext(uid, mail, flags, filter.WithAttachments)); } catch (Exception ex) {