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);
}
}
}