Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        private void SaveAdapters(string directoryPath, DbProject project, Entity[] entities, string namespaceName)
        {
            foreach (var entity in entities)
            {
                var className = entity.Class.Name + @"Adapter" + @".cs";
                var sourceCode = project.CreateEntityAdapter(entity);

                var buffer = new StringBuilder(sourceCode.Length);
                AddUsingsForAdapters(buffer, entity, namespaceName, !project.IsModifiable(entity.Table));
                AddNamespace(buffer, namespaceName, Adapters, sourceCode);

                SaveToFile(directoryPath, className, buffer);
            }
        }