private BindingMetadataFlags GetFlags(BindingMetadata metadata) { BindingMetadataFlags flags = BindingMetadataFlags.None; if (metadata.Parent == null) { flags |= BindingMetadataFlags.Model; } if (metadata.Relation.HasFlag(RelationMetadataFlags.List)) { flags |= BindingMetadataFlags.List; } if (metadata.Relation.HasFlag(RelationMetadataFlags.Item)) { flags |= BindingMetadataFlags.Item; } if (metadata.Type == typeof(object) || metadata.Type == typeof(ExpandoObject)) { flags |= BindingMetadataFlags.Dynamic; } if (metadata.Relation.HasFlag(RelationMetadataFlags.Readable)) { flags |= BindingMetadataFlags.Readable; } if (metadata.Relation.HasFlag(RelationMetadataFlags.Writable)) { flags |= BindingMetadataFlags.Writable; } return(flags); }
public static bool HasFlag(this IBindingMetadata metadata, BindingMetadataFlags flag) => (metadata.Flags & flag) == flag;
public static bool HasAnyFlag(this IBindingMetadata metadata, BindingMetadataFlags flag) => (metadata.Flags & flag) != BindingMetadataFlags.None;