/// <summary>
 /// Returns validation message for given property and validation attribute.
 /// Can be overriden to return custom messages based on <see cref="AttributeValidationResult.ValidationType"/> property.
 /// </summary>
 /// <param name="propertyValidationResult">Result of validation of property value against all its validation attributes.</param>
 /// <param name="attributeValidationResult">Result of validation of property value against single validation attribute.</param>
 /// <returns>Validation message.</returns>
 public virtual string GetValidationMessage(PropertyValidationResult propertyValidationResult, AttributeValidationResult attributeValidationResult)
 {
     _ = attributeValidationResult ?? throw new ArgumentNullException(nameof(attributeValidationResult));
     return(attributeValidationResult.ValidationResult.ErrorMessage);
 }
示例#2
0
        /// <inheritdoc />
        public override string GetValidationMessage(PropertyValidationResult propertyValidationResult, AttributeValidationResult attributeValidationResult)
        {
            _ = attributeValidationResult ?? throw new ArgumentNullException(nameof(attributeValidationResult));
            _ = propertyValidationResult ?? throw new ArgumentNullException(nameof(propertyValidationResult));

            var propertyDisplayName = GetPropertyDisplayName(propertyValidationResult);

            switch (attributeValidationResult.ValidationType)
            {
            case ValidationType.Required:
            case ValidationType.RequiredNonDefault:
                return(string.Format(CultureInfo.CurrentCulture, ValidationMessages.Required, propertyDisplayName));

            case ValidationType.StringLength:
                var stringLengthAttribute = (StringLengthAttribute)attributeValidationResult.ValidationAttribute;
                return(string.Format(CultureInfo.CurrentCulture, ValidationMessages.StringLength, propertyDisplayName, stringLengthAttribute.MinimumLength, stringLengthAttribute.MaximumLength));

            default:
                return(base.GetValidationMessage(propertyValidationResult, attributeValidationResult));
            }
        }