Exemple #1
0
        public DynamicLayoutBuilder(ISchemaLayoutBuilder <TSchema> builder)
        {
            _builder = builder;

            _properties = new List <ILayoutProperty <TLayout, TSchema> >();

            ImplementationType = builder.GetImplementationType <TLayout>();
        }
Exemple #2
0
        public void Apply(ISchemaLayoutBuilder <TSchema> builder)
        {
            var entityMapBuilder = new DynamicLayoutBuilder <TLayout, TSchema>(builder);

            foreach (var specification in _specifications.Values)
            {
                specification.Apply(entityMapBuilder);
            }

            var map = entityMapBuilder.Build();

            builder.Add(map);
        }
Exemple #3
0
        void BuildLayout(ISchemaLayoutBuilder <TSchema> builder)
        {
            var layoutBuilder = new DynamicLayoutBuilder <TLayout, TSchema>(builder);

            foreach (var specification in _specifications.Values)
            {
                specification.Apply(layoutBuilder);
            }

            var map = layoutBuilder.Build();

            builder.Add(map);
        }
Exemple #4
0
        void BuildLayouts(ISchemaLayoutBuilder <TSchema> schemaBuilder)
        {
            var builder = new SchemaLayoutBuilder <TSchema>(schemaBuilder);

            var graph = new DependencyGraph <Type>();

            foreach (var specification in _structureSpecifications)
            {
                foreach (var layoutType in specification.Value.GetReferencedLayoutTypes())
                {
                    graph.Add(specification.Key, layoutType);
                }
            }

            var orderedSpecifications = graph.GetItemsInDependencyOrder()
                                        .Concat(_structureSpecifications.Keys)
                                        .Distinct()
                                        .Select(type => _structureSpecifications[type]);

            foreach (var specification in orderedSpecifications)
            {
                specification.Apply(builder);
            }
        }
Exemple #5
0
 public SchemaLayoutBuilder(ISchemaLayoutBuilder <TSchema> schemaBuilder)
 {
     _schemaBuilder = schemaBuilder;
 }
Exemple #6
0
 public void Apply(ISchemaLayoutBuilder <TSchema> builder)
 {
     Specification.Apply(builder);
 }
Exemple #7
0
 void BuildFormatter(ISchemaLayoutBuilder <TSchema> builder)
 {
 }
Exemple #8
0
        public void Apply(ISchemaLayoutBuilder <TSchema> builder)
        {
            BuildFormatter(builder);

            BuildLayout(builder);
        }