public FlexibleStructureBuilder() { _typeConfigurations = new StructureTypeConfigurations(); _typeFactory = new StructureTypeFactory(); _schemaFactory = new StructureSchemaFactory(); _indexesFactory = new StructureIndexesFactory(); _schemas = new ConcurrentDictionary <Type, IStructureSchema>(); }
public static IStructureBuilder Create(IStructureTypeConfigurations typeConfigs) { EnsureArg.IsNotNull(typeConfigs, nameof(typeConfigs)); var structureTypeFactory = new StructureTypeFactory(); var schemaFactory = new StructureSchemaFactory(); var schemas = typeConfigs .Select(tc => structureTypeFactory.CreateFor(tc)) .Select(st => schemaFactory.CreateSchema(st)) .ToDictionary(s => s.StructureType.Type); return(new StructureBuilder(schemas)); }
public StructureTypeFactory(Func <IStructureTypeConfig, IStructureTypeReflecter> reflecterFn = null, IStructureTypeConfigurations configurations = null) { ReflecterFn = reflecterFn ?? (cfg => new StructureTypeReflecter()); Configurations = configurations ?? new StructureTypeConfigurations(); }