using System.ComponentModel.DataAnnotations; namespace BTCPayServer.Validation { /// /// Validate address in the format "Firstname Lastname " See rfc822 /// public class MailboxAddressAttribute : ValidationAttribute { public MailboxAddressAttribute() { ErrorMessage = ErrorMessageConst; } public const string ErrorMessageConst = "Invalid mailbox address. Some valid examples are: 'test@example.com' or 'Firstname Lastname '"; protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value is null) return ValidationResult.Success; var str = value as string; if (MailboxAddressValidator.IsMailboxAddress(str)) return ValidationResult.Success; return new ValidationResult(ErrorMessage); } } }