/// <summary> /// Generates the entities. /// </summary> /// <param name="entitiesGenerationSettings">The entities generation settings.</param> public void GenerateEntities(EntitiesGenerationSettings entitiesGenerationSettings) { var fieldsFactory = new FieldsFactory(); var propsFactory = new PropertiesFactory(entitiesGenerationSettings.Entities, _metadataRepository); var entityClassBuilder = new EntityClassBuilder(entitiesGenerationSettings.OutFolder); var entityModelBuilder = new EntityModelBuilder(entitiesGenerationSettings.OutFolder); var classFactory = new ClassFactory(); //build Entity class entityClassBuilder.Create(entitiesGenerationSettings.NameSpace); foreach (var entityMetadata in entitiesGenerationSettings.EntityMetadatas) { var classModel = classFactory.GetClassModel(entityMetadata, entitiesGenerationSettings.NameSpace); var relationshipMetadata = entityMetadata.OneToManyRelationships.Union(entityMetadata.ManyToOneRelationships).ToArray(); classModel.Properties = propsFactory.GetPropertyModels(entityMetadata.Attributes, relationshipMetadata); classModel.Fields = fieldsFactory.GetFields(entityMetadata.Attributes); classModel.Schemas = fieldsFactory.GetSchemaNames(entityMetadata.Attributes); classModel.PropertiesFields = fieldsFactory.GetProperties(entityMetadata.ManyToManyRelationships, entityMetadata.ManyToOneRelationships); //build model class entityModelBuilder.BuildClass(classModel, entitiesGenerationSettings.NameSpace); } }