Replaced the `Email` record with the new `EmailContext` record to introduce additional context and functionality in email handling. Updated property definitions to distinguish between .NET Framework (`set`) and other frameworks (`init`). Modified `SendingEmailEvent` to use `EmailContext` for the `Mail` property. Updated mappings in `EmailMappingProfile` to map `SendEmailCommand` to `EmailContext`. Adjusted `SendEmailCommandHandler` to use `EmailContext` when mapping requests. Refactored `EmailSender` to use `EmailContext` in its `Send` method, including updates to method signatures and documentation. Updated all related test classes (`EmailSenderTests`, `EmailSenderUrlOverloadTests`, `SendingEmailPublisherTests`) to validate the behavior of `EmailContext`, ensuring consistency and thorough testing of the transition. These changes ensure compatibility across frameworks and improve the maintainability of the email handling process.
48 lines
1.0 KiB
C#
48 lines
1.0 KiB
C#
namespace DigitalData.MessagingService.Abstraction;
|
|
|
|
public record EmailContext
|
|
{
|
|
#if NETFRAMEWORK
|
|
public EmailAccountDto Sender { get; set; } = null!;
|
|
#else
|
|
public required EmailAccountDto Sender { get; init; }
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Recipient email address
|
|
/// </summary>
|
|
|
|
#if NETFRAMEWORK
|
|
public IEnumerable<string> Recipients { get; set; } = null!;
|
|
#else
|
|
public required IEnumerable<string> Recipients { get; init; }
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Email subject
|
|
/// </summary>
|
|
|
|
#if NETFRAMEWORK
|
|
public string Subject { get; set; } = null!;
|
|
#else
|
|
public required string Subject { get; init; }
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Email body (HTML or plain text)
|
|
/// </summary>
|
|
#if NETFRAMEWORK
|
|
public string Body { get; set; } = null!;
|
|
#else
|
|
public required string Body { get; init; }
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Is HTML email (default: true)
|
|
/// </summary>
|
|
#if NETFRAMEWORK
|
|
public bool IsHtml { get; set; } = true;
|
|
#else
|
|
public bool IsHtml { get; init; } = true;
|
|
#endif
|
|
} |