示例#1
0
        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);
        }
示例#2
0
 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);
     }
 }
示例#3
0
 private void GenerateFromTemplate(ProjectTemplateData templateData, string template, string outputFile)
 {
     using (var reader = new StreamReader(template))
     {
         templateEngine.GenerateFromTemplate(reader, outputFile, templateData);
     }
 }