public override void Execute(List<string> args) { ValidateArgs(args); var projectName = args[0]; string coreNameSpace = projectName + ".Core"; string webNameSpace = projectName + ".Web"; string testNameSpace = projectName + ".Test"; var templateData = new ProjectTemplateData { CoreNamespace = coreNameSpace, WebNamespace = webNameSpace, TestNamespace = testNameSpace, ProjectName = projectName, DatabaseName = projectName.Replace(".", "") }; CreateDirectories(projectName); var ignoreTemplate = new Regex("^.*\\.template"); var ignoreSvn = new Regex("\\.svn"); fileSystem.CopyDirectory(scaffoldingHome + "\\Templates\\NewProject\\ProjectName\\packages", projectName + "\\packages", ignoreTemplate, ignoreSvn); fileSystem.CopyDirectory(scaffoldingHome + "\\Templates\\NewProject\\ProjectName\\Tools", projectName + "\\Tools", ignoreTemplate, ignoreSvn); fileSystem.CopyDirectory(scaffoldingHome + "\\Templates\\NewProject\\ProjectName\\ProjectName.Web\\Scripts", projectName + "\\" + webNameSpace + "\\Scripts", ignoreTemplate, ignoreSvn); fileSystem.CopyDirectory(scaffoldingHome + "\\Templates\\NewProject\\ProjectName\\ProjectName.Web\\Content", projectName + "\\" + webNameSpace + "\\Content", ignoreTemplate, ignoreSvn); GenerateFromTemplates(projectName, templateData); }
private void GenerateFromTemplates(string projectName, ProjectTemplateData templateData) { var templateBasePath = scaffoldingHome + "\\Templates\\NewProject\\ProjectName"; var templateFiles = ListTemplates(templateBasePath); foreach (var templateFile in templateFiles) { var outputFile = projectName + templateFile.Replace(templateBasePath, "") .Replace("ProjectName", projectName) .Replace(".template", "") .Replace("CoreNamespace", templateData.CoreNamespace) .Replace("WebNamespace", templateData.WebNamespace) .Replace("TestNamespace", templateData.TestNamespace); GenerateFromTemplate(templateData, templateFile, outputFile); } }
private void GenerateFromTemplate(ProjectTemplateData templateData, string template, string outputFile) { using (var reader = new StreamReader(template)) { templateEngine.GenerateFromTemplate(reader, outputFile, templateData); } }