public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var results = new List <ValidationResult>(); if (IsManual) { if (Issuer.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(Issuer)} field is required.", new[] { nameof(Issuer) })); } if (AuthnUrl.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(AuthnUrl)} field is required.", new[] { nameof(AuthnUrl) })); } if (Keys?.Count < Constants.Models.SamlParty.Up.KeysMin) { results.Add(new ValidationResult($"The field {nameof(Keys)} must be at least {Constants.Models.SamlParty.Up.KeysMin}.", new[] { nameof(Keys) })); } } else { if (MetadataUrl.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(MetadataUrl)} field is required.", new[] { nameof(MetadataUrl) })); } } return(results); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var results = new List <ValidationResult>(); if (Claims?.Where(c => c == "*").Count() > 1) { results.Add(new ValidationResult($"Only one wildcard (*) is allowed in the field {nameof(Claims)}.", new[] { nameof(Claims) })); } if (AuthnResponseBinding == null) { results.Add(new ValidationResult($"The {nameof(AuthnResponseBinding)} field is required.", new[] { nameof(AuthnResponseBinding) })); } if (UpdateState == PartyUpdateStates.Manual) { if (Issuer.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(Issuer)} field is required.", new[] { nameof(Issuer) })); } if (AuthnUrl.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(AuthnUrl)} field is required.", new[] { nameof(AuthnUrl) })); } if (AuthnRequestBinding == null) { results.Add(new ValidationResult($"The {nameof(AuthnRequestBinding)} field is required.", new[] { nameof(AuthnRequestBinding) })); } if (!LogoutUrl.IsNullOrWhiteSpace()) { if (LogoutRequestBinding == null) { results.Add(new ValidationResult($"The {nameof(LogoutRequestBinding)} field is required.", new[] { nameof(LogoutRequestBinding) })); } if (LogoutResponseBinding == null) { results.Add(new ValidationResult($"The {nameof(LogoutResponseBinding)} field is required.", new[] { nameof(LogoutResponseBinding) })); } } if (Keys?.Count < Constants.Models.SamlParty.Up.KeysMin) { results.Add(new ValidationResult($"The field {nameof(Keys)} must be at least {Constants.Models.SamlParty.Up.KeysMin}.", new[] { nameof(Keys) })); } } else { if (!MetadataUpdateRate.HasValue) { results.Add(new ValidationResult($"The {nameof(MetadataUpdateRate)} field is required.", new[] { nameof(MetadataUpdateRate) })); } if (MetadataUrl.IsNullOrEmpty()) { results.Add(new ValidationResult($"The {nameof(MetadataUrl)} field is required.", new[] { nameof(MetadataUrl) })); } } return(results); }