protected override async Task GenerateCode()
        {
            var destinationPath = Path.Combine(ApplicationEnvironment.ApplicationBasePath, Constants.ViewsFolderName,
                                               Constants.SharedViewsFolderName);

            await CopyFolderContentsRecursive(destinationPath, TemplateFolders.First());

            var staticFilesInstaller = ActivatorUtilities.CreateInstance <StaticFilesDependencyInstaller>(ServiceProvider);
            await staticFilesInstaller.Execute();
        }
Example #2
0
        protected override void ProcessRecordCore()
        {
            if ((TemplateFolders == null) || (!TemplateFolders.Any()))
            {
                throw new InvalidOperationException("Provide at least one TemplateSource");
            }
            if (string.IsNullOrEmpty(Template))
            {
                throw new InvalidOperationException("'Template' parameter cannot be null or empty");
            }

            // Determine the code language
            if (string.IsNullOrEmpty(CodeLanguage))
            {
                var project = SolutionManager.GetProject(string.IsNullOrEmpty(Project) ? SolutionManager.DefaultProjectName : Project);
                if (project == null)
                {
                    WriteError(string.Format("Could not find project '{0}'", Project ?? string.Empty));
                    return;
                }
                CodeLanguage = project.GetCodeLanguage();
                if (string.IsNullOrEmpty(CodeLanguage))
                {
                    throw new InvalidOperationException(string.Format("Cannot determine code language for default project '{0}'. Try specifying the code language via the -CodeLanguage parameter.", project.Name));
                }
            }

            var           templateFilename = string.Format("{0}.{1}.t4", Template, CodeLanguage);
            List <string> foldersSearched  = new List <string>();

            string matchingTemplate = (from folderPath in TemplateFolders
                                       select GetMatchingTemplateFromSpecificFolder(folderPath.ToString(), templateFilename, foldersSearched))
                                      .FirstOrDefault(x => !string.IsNullOrEmpty(x));

            if (!string.IsNullOrEmpty(matchingTemplate))
            {
                WriteVerbose(string.Format("Found template '{0}' at '{1}'", Template, matchingTemplate));
                WriteObject(matchingTemplate);
            }
            else
            {
                var message = string.Format("Could not find template '{0}' below folders ['{1}']", templateFilename, string.Join(", ", foldersSearched));
                if (ErrorIfNotFound.IsPresent)
                {
                    WriteError(message);
                }
                else
                {
                    WriteVerbose(message);
                }
            }
        }
        private static List <DbTemplate> AddYmlTemplates(this Db db, List <DbItem> items, bool merge = false)
        {
            List <DbTemplate> templates = new List <DbTemplate>();

            if (items != null && items.Count > 0)
            {
                templates = Templates.Get(items);
                db.AddRange(TemplateFolders.Get(items), merge);
                db.AddRange(templates, merge);
            }

            return(templates);
        }
 protected override async Task GenerateCode()
 {
     await CopyFolderContentsRecursive(GetWebRoot(), TemplateFolders.First());
 }