private static void GenerateProject(DbProject project, string directoryPath) { var buffer = new StringBuilder(1024 * 80); foreach (var entity in project.CreateEntities()) { // Classes var entityClass = project.CreateEntityClass(entity); buffer.AppendLine(entityClass); buffer.AppendLine(EntityClass.GenerateClassViewModel(entity, !project.IsModifiable(entity.Table))); buffer.AppendLine(project.CreateTableViewModel(entity)); if (!project.IsModifiable(entity.Table)) { buffer.AppendLine(project.CreateTableViewModel(entity)); } // Read Only adapters var adapter = !project.IsModifiable(entity.Table) ? project.CreateEntityAdapter(entity) : project.CreateEntityAdapter(entity); buffer.AppendLine(adapter); } var clrProject = new ClrProject(); clrProject.WriteAllText = File.WriteAllText; clrProject.CreateDirectory = path => { if (Directory.Exists(path)) { Directory.Delete(path, true); } Directory.CreateDirectory(path); }; clrProject.Save(directoryPath, project); var tmp = DbScript.CreateTables(project.Schema.Tables); Console.WriteLine(tmp); }
private void SaveObjects(string directoryPath, DbProject project, Entity[] entities, string namespaceName) { foreach (var entity in entities) { var className = entity.Class.Name + @".cs"; var sourceCode = project.CreateEntityClass(entity); var buffer = new StringBuilder(sourceCode.Length); AddUsingsForObjects(buffer, entity, project); AddNamespace(buffer, namespaceName, Objects, sourceCode); SaveToFile(directoryPath, className, buffer); } }