private static void ExecuteCustomPropertyValidationActions( IHasExtraProperties extensibleObject, List <ValidationResult> validationErrors, ValidationContext objectValidationContext, ObjectExtensionPropertyInfo property, object value) { if (!property.Validators.Any()) { return; } var context = new ObjectExtensionPropertyValidationContext( property, extensibleObject, validationErrors, objectValidationContext, value ); foreach (var validator in property.Validators) { validator(context); } }
public ObjectExtensionPropertyInfoEfCoreMappingOptions( [NotNull] ObjectExtensionPropertyInfo extensionProperty, [CanBeNull] Action <PropertyBuilder> propertyBuildAction = null) { ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty)); PropertyBuildAction = propertyBuildAction; }
private static void AddPropertyValidationAttributeErrors( IHasExtraProperties extensibleObject, List <ValidationResult> validationErrors, ValidationContext objectValidationContext, ObjectExtensionPropertyInfo property, object value) { var validationAttributes = property.GetValidationAttributes(); if (!validationAttributes.Any()) { return; } var propertyValidationContext = new ValidationContext(extensibleObject, objectValidationContext, null) { DisplayName = property.Name, MemberName = property.Name }; foreach (var attribute in validationAttributes) { var result = attribute.GetValidationResult( value, propertyValidationContext ); if (result != null) { validationErrors.Add(result); } } }
public static bool IsMappedToFieldForEfCore( [NotNull] this ObjectExtensionPropertyInfo propertyExtension) { Check.NotNull(propertyExtension, nameof(propertyExtension)); return(propertyExtension .Configuration .ContainsKey(EfCorePropertyConfigurationName)); }
public static ValidationAttribute[] GetValidationAttributes(this ObjectExtensionPropertyInfo propertyInfo) { // return propertyInfo // .Attributes // .OfType<ValidationAttribute> () // .Union (propertyInfo.ValidationAttributes) // .ToArray (); return(propertyInfo.Attributes.OfType <ValidationAttribute> ().ToArray()); }
public ObjectExtensionPropertyValidationContext( [NotNull] ObjectExtensionPropertyInfo objectExtensionPropertyInfo, [NotNull] IHasExtraProperties validatingObject, [NotNull] List <ValidationResult> validationErrors, [NotNull] ValidationContext validationContext, [CanBeNull] object value) { ExtensionPropertyInfo = Check.NotNull(objectExtensionPropertyInfo, nameof(objectExtensionPropertyInfo)); ValidatingObject = Check.NotNull(validatingObject, nameof(validatingObject)); ValidationErrors = Check.NotNull(validationErrors, nameof(validationErrors)); ValidationContext = Check.NotNull(validationContext, nameof(validationContext)); Value = value; }
public static ObjectExtensionPropertyInfoEfCoreMappingOptions GetEfCoreMappingOrNull( [NotNull] this ObjectExtensionPropertyInfo propertyExtension) { Check.NotNull(propertyExtension, nameof(propertyExtension)); return(propertyExtension .Configuration .GetOrDefault(EfCorePropertyConfigurationName) as ObjectExtensionPropertyInfoEfCoreMappingOptions); }
public static ObjectExtensionPropertyInfo MapEfCore( [NotNull] this ObjectExtensionPropertyInfo propertyExtension, [CanBeNull] Action <PropertyBuilder> propertyBuildAction = null) { Check.NotNull(propertyExtension, nameof(propertyExtension)); propertyExtension.Configuration[EfCorePropertyConfigurationName] = new ObjectExtensionPropertyInfoEfCoreMappingOptions( propertyExtension, propertyBuildAction ); return(propertyExtension); }
public static string GetInputType(this ObjectExtensionPropertyInfo propertyInfo) { foreach (var attribute in propertyInfo.Attributes) { var inputTypeByAttribute = GetInputTypeFromAttributeOrNull(attribute); if (inputTypeByAttribute != null) { return(inputTypeByAttribute); } } return(GetInputTypeFromTypeOrNull(propertyInfo.Type) ?? "text"); //default }
private static void AddPropertyValidationErrors( IHasExtraProperties extensibleObject, List <ValidationResult> validationErrors, ValidationContext objectValidationContext, ObjectExtensionPropertyInfo property, object value) { AddPropertyValidationAttributeErrors( extensibleObject, validationErrors, objectValidationContext, property, value ); ExecuteCustomPropertyValidationActions( extensibleObject, validationErrors, objectValidationContext, property, value ); }