コード例 #1
0
        private string ProcessT4Template(string path, bool onlyPreprocess, CommandLineEngineHost host)
        {
            Console.WriteLine("Processing '{0}'...", path);

            var engine = new Engine(_libraryExporter, host);

            var fileName = Path.GetFileNameWithoutExtension(path);
            var content  = File.ReadAllText(path);

            string transformedText;

            if (onlyPreprocess)
            {
                var relativeDir    = Path.GetDirectoryName(path).Substring(_appEnv.ApplicationBasePath.Length);
                var classNamespace = _appEnv.ApplicationName;
                if (relativeDir.Length != 0)
                {
                    classNamespace += '.' + relativeDir.Replace(Path.DirectorySeparatorChar, '.');
                }

                transformedText = engine.PreprocessT4Template(content, fileName, classNamespace).PreprocessedContent;
            }
            else
            {
                transformedText = engine.ProcessT4Template(content);
            }

            return(transformedText);
        }
コード例 #2
0
        public string ProcessTemplate(string content)
        {
            var engine         = new Engine();
            var libraryManager = CallContextServiceLocator.Locator.ServiceProvider.GetService <ILibraryManager>();
            var host           = new CommandLineEngineHost(libraryManager);

            return(engine.ProcessTemplate(content, host));
        }
コード例 #3
0
        private void WriteTemplate(string path, string transformedText, CommandLineEngineHost host)
        {
            Console.WriteLine("Writing '{0}'...", path);

            if (host.Encoding != null)
            {
                File.WriteAllText(path, transformedText, host.Encoding);
            }
            else
            {
                File.WriteAllText(path, transformedText);
            }
        }
コード例 #4
0
        private void ProcessT4Templates(string dir, bool onlyPreprocess)
        {
            var templates = GetT4TemplatePaths(dir);

            foreach (var path in templates)
            {
                var host = new CommandLineEngineHost(path);

                var transformedText = ProcessT4Template(path, onlyPreprocess, host);

                var output = Path.ChangeExtension(path, host.FileExtension);
                WriteTemplate(output, transformedText, host);
            }
        }
コード例 #5
0
        private async Task ProcessRazorTemplates(string dir, bool onlyPreprocess)
        {
            var templates = GetRazorTemplatePaths(dir);

            foreach (var path in templates)
            {
                var host = new CommandLineEngineHost(path);

                var transformedText = await ProcessRazorTemplate(path, onlyPreprocess, host);

                var output = path + host.FileExtension;
                WriteTemplate(output, transformedText, host);
            }
        }