Ejemplo n.º 1
0
        /// <summary>
        /// Gets the list of templates available in the templates directory defined in package settings
        /// </summary>
        /// <returns>List of templates available in the templates directory defined in package settings (empty when no templates are available)</returns>
        public List <TemplateInfo> GetTemplates()
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            var retVal = new List <TemplateInfo>();

            var templatesPath = RadProjectsExtensionOptions.ApplyVariables(Options?.TemplatesDir ?? RadProjectsExtensionOptions.DefaultTemplatesDir, Dte);

            Package.Output($"Checking templates in {templatesPath}...");
            var templatesDir = new DirectoryInfo(templatesPath);
            var templateDirs = templatesDir.GetDirectories().Where(di => File.Exists(di.FullName.AddPath(TemplateInfoFileName)));

            foreach (var templateDir in templateDirs)
            {
                var templateFile = templateDir.FullName.AddPath(TemplateInfoFileName);
                var templateInfo = TemplateInfo.Load(templateFile);
                templateInfo.TemplateDir = templateDir.FullName;
                retVal.Add(templateInfo);
            }
            Package.Output($"Found {retVal.Count} templates in {templatesPath}");
            return(retVal);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="package">Reference to the package</param>
 /// <param name="options">Package settings</param>
 /// <param name="dte">Visual Studio DTE object</param>
 public TemplateEngine(RadProjectsExtensionPackage package, RadProjectsExtensionOptions options, DTE2 dte)
 {
     Package = package;
     Options = options;
     Dte     = dte;
 }