Example #1
0
        public static void CopyMetadata(Type from, Type to)
        {
            var toBuilder   = FluentMetadataBuilder.GetTypeBuilder(to);
            var nameBuilder = new PropertyNameMetadataBuilder(from);

            foreach (var namedMetaData in nameBuilder.NamedMetaData)
            {
                var propertyInfo = to.GetProperty(namedMetaData.PropertyName);
                if (propertyInfo != null)
                {
                    toBuilder.MapProperty(to, namedMetaData.PropertyName, namedMetaData.Metadata);
                }
            }
            query.GetMetadataFor(to).CopyMetaDataFrom(query.GetMetadataFor(from));
        }
Example #2
0
        internal static void CopyMetadata(Type source, Type target)
        {
            FluentMetadataBuilder.RegisterDependency(source, target);
            var targetBuilder = FluentMetadataBuilder.GetTypeBuilder(target);

            //copy property metadata
            foreach (var sourcePropertyMetaData in new PropertyNameMetadataBuilder(source).NamedMetaData)
            {
                if (target.GetProperties().Count(p => p.Name == sourcePropertyMetaData.PropertyName) > 0)
                {
                    targetBuilder.MapProperty(target, sourcePropertyMetaData.PropertyName, sourcePropertyMetaData.Metadata);
                }
            }

            //copy type metadata
            QueryFluentMetadata.GetMetadataFor(target).CopyMetaDataFrom(QueryFluentMetadata.GetMetadataFor(source));
        }
Example #3
0
        public static void CopyMappedMetadata(Type source, Type target, IEnumerable <MemberMap> memberMaps)
        {
            FluentMetadataBuilder.RegisterDependency(source, target);
            var targetBuilder = FluentMetadataBuilder.GetTypeBuilder(target);

            //copy property metadata
            foreach (var sourcePropertyMetaData in new PropertyNameMetadataBuilder(source).NamedMetaData)
            {
                var memberMap = memberMaps.SingleOrDefault(mm => mm.SourceName == sourcePropertyMetaData.PropertyName);

                if (memberMap != null)
                {
                    targetBuilder.MapProperty(target, memberMap.DestinationName, sourcePropertyMetaData.Metadata);
                }
            }

            //copy type metadata
            QueryFluentMetadata.GetMetadataFor(target).CopyMetaDataFrom(QueryFluentMetadata.GetMetadataFor(source));
        }
 public static Metadata GetMetadataFor(Type type)
 {
     return(FluentMetadataBuilder.GetTypeBuilder(type).Metadata);
 }
        public Metadata GetMetadataFor(Type type)
        {
            var builder = FluentMetadataBuilder.GetTypeBuilder(type);

            return(builder.Metadata);
        }
Example #6
0
 private static TypeMetadataBuilder <TBuilder> GetTypeBuilder <TBuilder>()
 {
     return((TypeMetadataBuilder <TBuilder>)FluentMetadataBuilder.GetTypeBuilder <TBuilder>());
 }
Example #7
0
 static TypeMetadataBuilder <TBuilder> GetTypeBuilder <TBuilder>()
 {
     return(FluentMetadataBuilder.GetTypeBuilder <TBuilder>());
 }