private static object GetNormalizedValue( Dictionary <string, object> dictionary, ObjectExtensionPropertyInfo property) { var value = dictionary.GetOrDefault(property.Name); if (value == null) { return(property.GetDefaultValue()); } try { if (property.Type.IsEnum) { return(Enum.Parse(property.Type, value.ToString(), true)); } //return Convert.ChangeType(value, property.Type); return(value); } catch { return(value); } }
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); } }
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 ValidationAttribute[] GetValidationAttributes(this ObjectExtensionPropertyInfo propertyInfo) { return(propertyInfo .Attributes .OfType <ValidationAttribute>() .ToArray()); }
public ObjectExtensionPropertyInfoEfMappingOptions( [NotNull] ObjectExtensionPropertyInfo extensionProperty, [CanBeNull] Action <EntityTypeBuilder, PropertyBuilder> entityTypeAndPropertyBuildAction) { ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty)); EntityTypeAndPropertyBuildAction = entityTypeAndPropertyBuildAction; }
public static bool IsMappedToFieldForEf( [NotNull] this ObjectExtensionPropertyInfo propertyExtension) { Check.NotNull(propertyExtension, nameof(propertyExtension)); return(propertyExtension .Configuration .ContainsKey(EfPropertyConfigurationName)); }
public static ObjectExtensionPropertyInfoEfMappingOptions GetEfMappingOrNull( [NotNull] this ObjectExtensionPropertyInfo propertyExtension) { Check.NotNull(propertyExtension, nameof(propertyExtension)); return(propertyExtension .Configuration .GetOrDefault(EfPropertyConfigurationName) as ObjectExtensionPropertyInfoEfMappingOptions); }
public static ObjectExtensionPropertyInfo MapEf( [NotNull] this ObjectExtensionPropertyInfo propertyExtension) { Check.NotNull(propertyExtension, nameof(propertyExtension)); propertyExtension.Configuration[EfPropertyConfigurationName] = new ObjectExtensionPropertyInfoEfMappingOptions( propertyExtension ); return(propertyExtension); }
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 ObjectExtensionPropertyInfo MapEf( [NotNull] this ObjectExtensionPropertyInfo propertyExtension, [CanBeNull] Action <EntityTypeBuilder, PropertyBuilder> entityTypeAndPropertyBuildAction) { Check.NotNull(propertyExtension, nameof(propertyExtension)); propertyExtension.Configuration[EfPropertyConfigurationName] = new ObjectExtensionPropertyInfoEfMappingOptions( propertyExtension, entityTypeAndPropertyBuildAction ); return(propertyExtension); }
public static ObjectExtensionPropertyInfo MapEfCore( [NotNull] this ObjectExtensionPropertyInfo propertyExtension, [CanBeNull] Action <PropertyBuilder> propertyBuildAction) { 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 ); }
public ObjectExtensionPropertyInfoEfMappingOptions( [NotNull] ObjectExtensionPropertyInfo extensionProperty) { ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty)); }