public ObjectExtensionValidationContext( [NotNull] ObjectExtensionInfo objectExtensionInfo, [NotNull] IHasExtraProperties validatingObject, [NotNull] List <ValidationResult> validationErrors, [NotNull] ValidationContext validationContext) { ObjectExtensionInfo = Check.NotNull(objectExtensionInfo, nameof(objectExtensionInfo)); ValidatingObject = Check.NotNull(validatingObject, nameof(validatingObject)); ValidationErrors = Check.NotNull(validationErrors, nameof(validationErrors)); ValidationContext = Check.NotNull(validationContext, nameof(validationContext)); }
public ObjectExtensionPropertyInfo( [NotNull] ObjectExtensionInfo objectExtension, [NotNull] Type type, [NotNull] string name) { ObjectExtension = Check.NotNull(objectExtension, nameof(objectExtension)); Type = Check.NotNull(type, nameof(type)); Name = Check.NotNull(name, nameof(name)); Configuration = new Dictionary <object, object>(); Attributes = new List <Attribute>(); Validators = new List <Action <ObjectExtensionPropertyValidationContext> >(); Attributes.AddRange(ExtensionPropertyHelper.GetDefaultAttributes(Type)); DefaultValue = TypeHelper.GetDefaultValue(Type); Lookup = new ExtensionPropertyLookupConfiguration(); }
private static bool CanMapProperty( [NotNull] string propertyName, [CanBeNull] ObjectExtensionInfo sourceObjectExtension, [CanBeNull] ObjectExtensionInfo destinationObjectExtension, MappingPropertyDefinitionChecks?definitionChecks = null, string[] ignoredProperties = null) { Check.NotNull(propertyName, nameof(propertyName)); if (ignoredProperties != null && ignoredProperties.Contains(propertyName)) { return(false); } if (definitionChecks != null) { if (definitionChecks.Value.HasFlag(MappingPropertyDefinitionChecks.Source)) { if (sourceObjectExtension == null) { return(false); } if (!sourceObjectExtension.HasProperty(propertyName)) { return(false); } } if (definitionChecks.Value.HasFlag(MappingPropertyDefinitionChecks.Destination)) { if (destinationObjectExtension == null) { return(false); } if (!destinationObjectExtension.HasProperty(propertyName)) { return(false); } } return(true); } else { var sourcePropertyDefinition = sourceObjectExtension?.GetPropertyOrNull(propertyName); var destinationPropertyDefinition = destinationObjectExtension?.GetPropertyOrNull(propertyName); if (sourcePropertyDefinition != null) { if (destinationPropertyDefinition != null) { return(true); } if (sourcePropertyDefinition.CheckPairDefinitionOnMapping == false) { return(true); } } else if (destinationPropertyDefinition != null) { if (destinationPropertyDefinition.CheckPairDefinitionOnMapping == false) { return(true); } } return(false); } }