public virtual PrimitivePropertyConfiguration AddProperty(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { IgnoredProperties.Remove(propertyInfo); } PrimitivePropertyConfiguration propertyConfiguration = null; if (ExplicitProperties.ContainsKey(propertyInfo)) { propertyConfiguration = ExplicitProperties[propertyInfo] as PrimitivePropertyConfiguration; if (propertyConfiguration == null) { throw Error.Argument("propertyInfo", SRResources.MustBePrimitiveProperty, propertyInfo.Name); } } else { propertyConfiguration = new PrimitivePropertyConfiguration(propertyInfo); ExplicitProperties[propertyInfo] = propertyConfiguration; } return(propertyConfiguration); }
/// <summary> /// Adds the property info of the dynamic properties to this structural type. /// </summary> /// <param name="propertyInfo">The property being added.</param> public virtual void AddDynamicPropertyDictionary(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!typeof(IDictionary <string, object>).IsAssignableFrom(propertyInfo.PropertyType)) { throw Error.Argument("propertyInfo", SRResources.ArgumentMustBeOfType, "IDictionary<string, object>"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { RemovedProperties.Remove(propertyInfo); } if (_dynamicPropertyDictionary != null) { throw Error.Argument("propertyInfo", SRResources.MoreThanOneDynamicPropertyContainerFound, ClrType.Name); } _dynamicPropertyDictionary = propertyInfo; }
/// <summary> /// Adds the property info of the instanceannotation to this structural type. /// </summary> /// <param name="propertyInfo">The property being added.</param> public virtual void AddInstanceAnnotationContainer(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } TypeHelper.ValidateAssignableFromForArgument(typeof(IODataInstanceAnnotationContainer), propertyInfo.PropertyType, "IODataInstanceAnnotationContainer"); if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { RemovedProperties.Remove(propertyInfo); } if (_instanceAnnotationContainer != null) { throw Error.Argument("propertyInfo", SRResources.MoreThanOneAnnotationPropertyContainerFound, ClrType.Name); } _instanceAnnotationContainer = propertyInfo; }
/// <summary> /// Adds a collection property to this edm type. /// </summary> /// <param name="propertyInfo">The property being added.</param> /// <returns>The <see cref="CollectionPropertyConfiguration"/> so that the property can be configured further.</returns> public virtual CollectionPropertyConfiguration AddCollectionProperty(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } ValidatePropertyNotAlreadyDefinedInBaseTypes(propertyInfo); ValidatePropertyNotAlreadyDefinedInDerivedTypes(propertyInfo); // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { RemovedProperties.Remove(propertyInfo); } CollectionPropertyConfiguration propertyConfiguration; if (ExplicitProperties.ContainsKey(propertyInfo)) { propertyConfiguration = ExplicitProperties[propertyInfo] as CollectionPropertyConfiguration; if (propertyConfiguration == null) { throw Error.Argument("propertyInfo", SRResources.MustBeCollectionProperty, propertyInfo.Name, propertyInfo.DeclaringType.FullName); } } else { propertyConfiguration = new CollectionPropertyConfiguration(propertyInfo, this); ExplicitProperties[propertyInfo] = propertyConfiguration; // If the ElementType is the same as this type this is recursive complex type nesting if (propertyConfiguration.ElementType == ClrType) { throw Error.Argument("propertyInfo", SRResources.RecursiveComplexTypesNotAllowed, ClrType.Name, propertyConfiguration.Name); } // If the ElementType is not primitive or enum treat as a ComplexType and Add to the model. IEdmPrimitiveTypeReference edmType = EdmLibHelpers.GetEdmPrimitiveTypeReferenceOrNull(propertyConfiguration.ElementType); if (edmType == null) { if (!TypeHelper.IsEnum(propertyConfiguration.ElementType)) { ModelBuilder.AddComplexType(propertyConfiguration.ElementType); } } } return(propertyConfiguration); }
public bool IsPropertyIgnored(string propName) { if (!propIgnored) { return(false); } else { return(IgnoredProperties.Contains(propName)); } }
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { JsonProperty property = base.CreateProperty(member, memberSerialization); if (!IgnoredProperties.Contains(member.Name)) { property.Ignored = !DocProcessingInstructionProperties.Contains(property.PropertyName); } property.ShouldSerialize = instance => !property.Ignored; return(property); }
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) { foreach (var property in AllProperties) { if (IgnoredProperties.Contains(property.Key)) { continue; } var destructureObjects = PropertiesToDestructure.Contains(property.Key); logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty(property.Key, property.Value, destructureObjects)); } }
public virtual ComplexPropertyConfiguration AddComplexProperty(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } if (propertyInfo.PropertyType == ClrType) { throw Error.Argument("propertyInfo", SRResources.RecursiveComplexTypesNotAllowed); } // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { IgnoredProperties.Remove(propertyInfo); } ComplexPropertyConfiguration propertyConfiguration = null; if (ExplicitProperties.ContainsKey(propertyInfo)) { propertyConfiguration = ExplicitProperties[propertyInfo] as ComplexPropertyConfiguration; if (propertyConfiguration == null) { throw Error.Argument("propertyInfo", SRResources.MustBeComplexProperty, propertyInfo.Name); } } else { propertyConfiguration = new ComplexPropertyConfiguration(propertyInfo); ExplicitProperties[propertyInfo] = propertyConfiguration; // Make sure the complex type is in the model. ModelBuilder.AddComplexType(propertyInfo.PropertyType); } return(propertyConfiguration); }
public virtual void RemoveProperty(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } if (ExplicitProperties.ContainsKey(propertyInfo)) { ExplicitProperties.Remove(propertyInfo); } if (!IgnoredProperties.Contains(propertyInfo)) { IgnoredProperties.Add(propertyInfo); } }
/// <summary> /// Adds the property info of the dynamic properties to this structural type. /// </summary> /// <param name="propertyInfo">The property being added.</param> public virtual void AddDynamicPropertyDictionary(PropertyInfo propertyInfo) { if (propertyInfo == null) { throw Error.ArgumentNull("propertyInfo"); } if (!typeof(IDictionary <string, object>).IsAssignableFrom(propertyInfo.PropertyType)) { throw Error.Argument("propertyInfo", SRResources.ArgumentMustBeOfType, "IDictionary<string, object>"); } if (!propertyInfo.DeclaringType.IsAssignableFrom(ClrType)) { throw Error.Argument("propertyInfo", SRResources.PropertyDoesNotBelongToType); } // Throws NotSupported exception if attempting to add a dynamic property dictionary property // on open entity type. Please remove this block after supporting the open entity type. if (Kind == EdmTypeKind.Entity) { throw Error.NotSupported(SRResources.OpenEntityTypeNotSupported, propertyInfo.Name, Name); } // Remove from the ignored properties if (IgnoredProperties.Contains(propertyInfo)) { RemovedProperties.Remove(propertyInfo); } if (_dynamicPropertyDictionary != null) { throw Error.Argument("propertyInfo", SRResources.MoreThanOneDynamicPropertyContainerFound, ClrType.Name); } _dynamicPropertyDictionary = propertyInfo; }
public static List <string> GetIncompleteCandidateDetails(this Candidate candidate) { var type = typeof(Candidate); var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(prop => !IgnoredProperties.Contains(prop.Name)); var nullProperties = properties.Where(prop => prop.GetValue(candidate, null).IsNullOrEmpty()) .Select(property => property.Name); return(nullProperties.ToList()); }
public static bool HasAllEmptyProperties(Candidate candidate) { var type = typeof(Candidate); var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(prop => !IgnoredProperties.Contains(prop.Name)); var hasProperty = properties.Any(x => x.GetValue(candidate, null).IsNullOrEmpty()); return(!hasProperty); }
private bool ignoreProperty(MemberInfo property) { return(IgnoredProperties.Contains(property.Name)); }