public static void CreateNewDomainProject(string domainDirectory, IFileSystem fileSystem, DomainProject domainProject) { fileSystem.Directory.CreateDirectory(domainDirectory); SolutionBuilder.BuildSolution(domainDirectory, domainProject.DomainName, fileSystem); // need this before boundaries to give them something to build against DockerBuilders.CreateDockerComposeSkeleton(domainDirectory, fileSystem); //Parallel.ForEach(domainProject.BoundedContexts, (template) => // ApiScaffolding.ScaffoldApi(domainDirectory, template, fileSystem, verbosity)); foreach (var bc in domainProject.BoundedContexts) { ApiScaffolding.ScaffoldApi(domainDirectory, bc, fileSystem); } // auth server if (domainProject.AuthServer != null) { AddAuthServerCommand.AddAuthServer(domainDirectory, fileSystem, domainProject.AuthServer); } // messages if (domainProject.Messages.Count > 0) { AddMessageCommand.AddMessages(domainDirectory, fileSystem, domainProject.Messages); } // migrations Utilities.RunDbMigrations(domainProject.BoundedContexts, domainDirectory); //final ReadmeBuilder.CreateReadme(domainDirectory, domainProject.DomainName, fileSystem); if (domainProject.AddGit) { Utilities.GitSetup(domainDirectory, domainProject.UseSystemGitUser); } }