protected virtual void NormalizeValidationAttrbute(ValidationAttribute validationAttribute) { if (validationAttribute.ErrorMessage == null) { ValidationAttributeHelper.SetDefaultErrorMessage(validationAttribute); } }
public void ExpressionPassesValidation() { expressionTestNode.Expression = "NOT I:?"; ValidateNodeCommand cmd = new ValidateNodeCommand(ServiceProvider); cmd.Execute(expressionTestNode); Assert.AreEqual(0, ValidationAttributeHelper.GetValidationErrorsCount(ServiceProvider)); }
public void NonExpressionFailsValidation() { string nonExpression = "hello, this doesnt make sense"; expressionTestNode.Expression = nonExpression; ValidateNodeCommand cmd = new ValidateNodeCommand(ServiceProvider); cmd.Execute(expressionTestNode); Assert.AreEqual(1, ValidationAttributeHelper.GetValidationErrorsCount(ServiceProvider)); }
private static string GetDefaultErrorMessage(ValidationAttribute validationAttribute) { if (validationAttribute is StringLengthAttribute stringLengthAttribute && stringLengthAttribute.MinimumLength != 0) { var nullable = ValidationAttributeHelper.ValidationAttributeCustomErrorMessageSetProperty.GetValue((object)validationAttribute) as bool?; var flag = true; if (!(nullable.GetValueOrDefault() == flag & nullable.HasValue)) { return(ValidationAttributeHelper.SetErrorMessagePlaceholders("The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.")); } } return(ValidationAttributeHelper.SetErrorMessagePlaceholders(ValidationAttributeHelper.ValidationAttributeErrorMessageStringProperty.GetValue((object)validationAttribute) as string)); }
public override ValidationResult GetOrDefault(ValidationAttribute validationAttribute, object validatingObject, ValidationContext validationContext) { var resourceSource = _abpMvcDataAnnotationsLocalizationOptions.AssemblyResources.GetOrDefault(validationContext.ObjectType.Assembly); if (resourceSource == null) { return(base.GetOrDefault(validationAttribute, validatingObject, validationContext)); } if (validationAttribute.ErrorMessage == null) { ValidationAttributeHelper.SetDefaultErrorMessage(validationAttribute); } if (validationAttribute.ErrorMessage != null) { validationAttribute.ErrorMessage = _stringLocalizerFactory.Create(resourceSource)[validationAttribute.ErrorMessage]; } return(base.GetOrDefault(validationAttribute, validatingObject, validationContext)); }
protected virtual void Validate(ValidatorEventArgs e) { e.Status = ValidationStatus.Success; var validationAttributes = PropertyInfo.GetValidationAttributes(); var validationContext = new ValidationContext(Entity) { DisplayName = PropertyInfo.Name, MemberName = PropertyInfo.Name }; foreach (var validationAttribute in validationAttributes) { var result = validationAttribute.GetValidationResult(e.Value, validationContext); if (result == ValidationResult.Success || result == null) { continue; } var errorMessage = result.ErrorMessage; if (LH != null) { var formattedErrorMessage = GetDefaultErrorMessage(validationAttribute); var errorMessageString = ValidationAttributeHelper.RevertErrorMessagePlaceholders(formattedErrorMessage); var errorMessageArguments = ValidationMessageLocalizerAttributeFinder.FindAll(errorMessage, errorMessageString) ?.OrderBy(x => x.Index) ?.Select(x => x.Argument); errorMessage = LH.Localize(errorMessageString, errorMessageArguments); } e.MemberNames = result.MemberNames; e.Status = ValidationStatus.Error; e.ErrorText = errorMessage; break; } }
protected virtual void AddExtraPropertyValidationsAttributes(ViewContext viewContext, ModelExplorer modelExplorer, IDictionary <string, string> attributes) { var nameAttribute = attributes.GetOrDefault("name"); if (nameAttribute == null) { return; } var extraPropertyName = ExtraPropertyBindingHelper.ExtractExtraPropertyName(nameAttribute); if (extraPropertyName == null) { return; } //TODO: containerName can be null on controller actions..? var containerName = ExtraPropertyBindingHelper.ExtractContainerName(nameAttribute); if (containerName == null) { return; } if (modelExplorer.Container?.ModelType == null) { return; } var extensibleObjectType = modelExplorer.Container.ModelType .GetProperty(containerName, BindingFlags.Instance | BindingFlags.Public) ?.PropertyType; if (extensibleObjectType == null) { return; } var extensionPropertyInfo = ObjectExtensionManager.Instance.GetPropertyOrNull( extensibleObjectType, extraPropertyName ); if (extensionPropertyInfo == null) { return; } if (modelExplorer.Metadata is DefaultModelMetadata metadata) { metadata.DisplayMetadata.DisplayName = () => extensionPropertyInfo.GetLocalizedDisplayName(_stringLocalizerFactory); } foreach (var validationAttribute in extensionPropertyInfo.GetValidationAttributes()) { var validationContext = new ClientModelValidationContext( viewContext, modelExplorer.Metadata, _metadataProvider, attributes ); if (validationAttribute.ErrorMessage == null) { ValidationAttributeHelper.SetDefaultErrorMessage(validationAttribute); } var validationAttributeAdapter = _validationAttributeAdapterProvider.GetAttributeAdapter( validationAttribute, _validationStringLocalizer ); validationAttributeAdapter?.AddValidation(validationContext); } }