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, SupportedMessageType supportedMessageType) { if (string.IsNullOrWhiteSpace(context.MessageId)) return "AMQP MessageId is required."; if (SupportedMessageTypeParser.Parse(context.MessageType) != supportedMessageType) return $"Unsupported AMQP message type '{context.MessageType ?? ""}'."; try { SendEmailMessageValidator.Validate(message); return null; } catch (InvalidDataException exception) { return exception.Message; } } }