Files
hrynco-notification-service/HrynCo.NotificationService.Worker/SendEmailDeliveryValidator.cs
agrynco 2757869176 feat: consume transactional email notifications
Add contract validation, SMTP delivery results, terminal failure context, neutral development seeding, and local Docker setup.

Ref: IT-1033
2026-08-04 12:32:28 +03:00

31 lines
930 B
C#

namespace HrynCo.NotificationService.Worker;
using HrynCo.NotificationService.Contracts.Messages;
using HrynCo.NotificationService.Worker.Services.EmailProcessing;
using Hrynco.RabbitMq;
internal static class SendEmailDeliveryValidator
{
public static string? GetValidationError(
SendEmailMessage message,
RabbitMqMessageContext context,
string supportedMessageType)
{
if (string.IsNullOrWhiteSpace(context.MessageId))
return "AMQP MessageId is required.";
if (!string.Equals(context.MessageType, supportedMessageType, StringComparison.Ordinal))
return $"Unsupported AMQP message type '{context.MessageType ?? "<missing>"}'.";
try
{
SendEmailMessageValidator.Validate(message);
return null;
}
catch (InvalidDataException exception)
{
return exception.Message;
}
}
}