public MessageService( ICoreMessageService coreMessageService, IOptionsSnapshot <EmailConfiguration> emailConfigurationAccessor, ILogger <MessageService> logger) { _coreMessageService = coreMessageService ?? throw new ArgumentNullException(nameof(coreMessageService)); if (emailConfigurationAccessor == null) { throw new ArgumentNullException(nameof(emailConfigurationAccessor)); } _emailConfiguration = emailConfigurationAccessor.Value ?? throw new ArgumentException("Value cannot be null", nameof(emailConfigurationAccessor)); if (string.IsNullOrWhiteSpace(_emailConfiguration.PackageUrlTemplate)) { throw new ArgumentException($"{nameof(emailConfigurationAccessor.Value)}.{nameof(_emailConfiguration.PackageUrlTemplate)} cannot be empty", nameof(emailConfigurationAccessor)); } if (string.IsNullOrWhiteSpace(_emailConfiguration.PackageSupportTemplate)) { throw new ArgumentException($"{nameof(emailConfigurationAccessor.Value)}.{nameof(_emailConfiguration.PackageSupportTemplate)} cannot be empty", nameof(emailConfigurationAccessor)); } if (string.IsNullOrWhiteSpace(_emailConfiguration.EmailSettingsUrl)) { throw new ArgumentException($"{nameof(emailConfigurationAccessor.Value)}.{nameof(_emailConfiguration.EmailSettingsUrl)} cannot be empty", nameof(emailConfigurationAccessor)); } if (!Uri.TryCreate(_emailConfiguration.EmailSettingsUrl, UriKind.Absolute, out Uri result)) { throw new ArgumentException($"{nameof(emailConfigurationAccessor.Value)}.{nameof(_emailConfiguration.EmailSettingsUrl)} must be an absolute Url", nameof(emailConfigurationAccessor)); } _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }