public Validate ( System.ComponentModel.DataAnnotations.ValidationContext validationContext ) : IEnumerable |
||
validationContext | System.ComponentModel.DataAnnotations.ValidationContext | |
리턴 | IEnumerable |
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var validationResults = new List<ValidationResult>();
foreach (string email in To) { ValidateEmail(validationResults, email, nameof(To), "To"); }
foreach (string email in CC) { ValidateEmail(validationResults, email, nameof(CC), "CC"); }
foreach (string email in Bcc) { ValidateEmail(validationResults, email, nameof(Bcc), "BCC"); }
if (!To.Any() && !CC.Any() && !Bcc.Any())
{
validationResults.Add(new ValidationResult("This email doesn't define a recipient.", new[] { nameof(To), nameof(CC), nameof(Bcc) }));
}
return validationResults;
}
public void ValidateTest() { var longText = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; var email = new Email(); Assert.AreEqual("", email.Validate(nameof(Email.Title))); email.Title = longText; Assert.AreEqual("The field Title must be a string with a maximum length of 255.", email.Validate(nameof(Email.Title))); email.Title = ""; Assert.AreEqual("", email.Validate(nameof(Email.From))); email.From = longText; Assert.AreEqual("The field From must be a string with a maximum length of 255.", email.Validate(nameof(Email.From))); email.From = ""; Assert.AreEqual("This email doesn't define a recipient.", email.Validate()); email.To = new[] { "wrong email address" }; email.CC = email.To; email.Bcc = email.To; Assert.AreEqual("The email wrong email address in the To field is not valid." + Environment.NewLine + "The email wrong email address in the CC field is not valid." + Environment.NewLine + "The email wrong email address in the BCC field is not valid.", email.Validate()); email.To = new[] { "*****@*****.**" }; email.CC = email.To; email.Bcc = email.To; Assert.AreEqual("", email.Validate()); }