예제 #1
0
파일: ClrProject.cs 프로젝트: ppetrov/Cchbc
        public void Save(string directoryPath, DbProject project)
        {
            if (directoryPath == null) throw new ArgumentNullException(nameof(directoryPath));
            if (project == null) throw new ArgumentNullException(nameof(project));

            // Create directory names for Objects, Adapters, Helpers, ...
            var objectsPath = Path.Combine(directoryPath, Objects);
            var adaptersPath = Path.Combine(directoryPath, Adapters);
            var helpersPath = Path.Combine(directoryPath, Helpers);
            var modulesPath = Path.Combine(directoryPath, Modules);
            var viewModelsPath = Path.Combine(directoryPath, ViewModels);

            // Create directories
            this.CreateDirectory(objectsPath);
            this.CreateDirectory(adaptersPath);
            this.CreateDirectory(helpersPath);
            this.CreateDirectory(modulesPath);
            this.CreateDirectory(viewModelsPath);

            var namespaceName = project.Schema.Name;
            var entities = project.CreateEntities();
            SaveObjects(objectsPath, project, entities, namespaceName);
            SaveAdapters(adaptersPath, project, entities, namespaceName);
            SaveHelpers(helpersPath, project, entities, namespaceName);
            SaveModules(modulesPath, project, entities, namespaceName);
            SaveViewModels(viewModelsPath, project, entities, namespaceName);
        }
예제 #2
0
파일: Program.cs 프로젝트: ppetrov/Cchbc
        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);
        }