public string RenderFromMvc <TViewModel>(string path, TViewModel vm) { string templateKey = path; // Just reuse the path as a unique key to the template var viewPath = AppRoot + path; //var razor = RazorEngine.Engine.Razor; // https://matthid.github.io/RazorEngine/TemplateBasics.html#Extending-the-template-Syntax var config = new RazorEngine.Configuration.TemplateServiceConfiguration(); config.BaseTemplateType = typeof(RazorMvcTemplateBase <>); config.Resolver = new RazorTemplateResolver(AppRoot, viewPath); //config.TemplateManager using (var razor = RazorEngineService.Create(config)) { var tvm = typeof(TViewModel); if (!razor.IsTemplateCached(templateKey, tvm)) { var template = System.IO.File.ReadAllText(viewPath); //template = FromMvcRazorToRazorEngine(template); razor.AddTemplate(templateKey, template); } string html = razor.RunCompile(templateKey, typeof(TViewModel), vm); return(html); } }
public string RenderView(string template) { if (string.IsNullOrEmpty(template)) { return(""); } var razorEngineConfig = new RazorEngine.Configuration.TemplateServiceConfiguration(); razorEngineConfig.DisableTempFileLocking = true; razorEngineConfig.EncodedStringFactory = new RazorEngine.Text.RawStringFactory(); var engineRazor = RazorEngine.Templating.RazorEngineService.Create(razorEngineConfig); // new API //config.EncodedStringFactory = new RawStringFactory(); // Raw string encoding. //config.EncodedStringFactory = new HtmlEncodedStringFactory(); // Html encoding. DynamicViewBag model = new DynamicViewBag(this.Model); try { var result = engineRazor.RunCompile(template, Devmasters.Crypto.Hash.ComputeHashToHex(template), null, model); return(result); } catch (Exception e) { HlidacStatu.Util.Consts.Logger.Error("Razor template render", e); throw; } }
public EmailManager() { try { MailClient = new SmtpClient() { EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["configuration.email.ssl"] ?? "False"), Host = ConfigurationManager.AppSettings["configuration.email.smtpServer"], Port = Convert.ToInt16(ConfigurationManager.AppSettings["configuration.email.port"] ?? "25"), Credentials = new NetworkCredential(ConfigurationManager.AppSettings["configuration.email.user"], ConfigurationManager.AppSettings["configuration.email.password"]) }; var emailLayoutPath = System.Web.Hosting.HostingEnvironment.MapPath("~/~/CMS/Views/Emails/EmailLayout.cshtml"); var emailLayoutContent = File.ReadAllText(emailLayoutPath, System.Text.Encoding.UTF8); var config = new RazorEngine.Configuration.TemplateServiceConfiguration() { AllowMissingPropertiesOnDynamic = true }; Engine.Razor = RazorEngineService.Create(config); Engine.Razor.AddTemplate("EmailLayout", emailLayoutContent); } catch (Exception ex) { Logger.Log(ex); } }
public RazorReportingEngine(BaseComparisonEngine engine) : base(engine) { // Setup Razor var config = new RazorEngine.Configuration.TemplateServiceConfiguration(); config.DisableTempFileLocking = true; config.CachingProvider = new DefaultCachingProvider(t => { }); var service = RazorEngineService.Create(config); // Run the tests Reconciliations.Tests.Results.ReconciliationResultSuite resultSuite = engine.Execute(); // Get the default template var assembly = Assembly.GetExecutingAssembly(); var ff = assembly.GetManifestResourceStream("Symmetry.DifferenceEngine.Reporting.Razor.default.cshtml"); var defaultTemplate = new System.IO.StreamReader(ff); // Generate the output string eo = service.RunCompile(defaultTemplate.ReadToEnd(),"tempKey", typeof(ResultViewModel), new ResultViewModel { BaseName = engine.Name, ExecutionDt = DateTime.Now, ReferenceName = Guid.NewGuid().ToString().Replace("-", string.Empty), Description = engine.Description, Engine = engine, ResultSuite = resultSuite }); Message = eo; }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ModelBinders.Binders.DefaultBinder = new CustomModelBinder(); IoC.Init(); ValidatorConfig.Init(); // Configure view engine ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(IoC.StructureMapResolver.GetInstance <ThemeableViewEngine>()); // Configure razor parser var razrEngineConfig = new RazorEngine.Configuration.TemplateServiceConfiguration { BaseTemplateType = typeof(RazorTemplateBase <>) }; var razrTemplService = new TemplateService(razrEngineConfig); RazorEngine.Razor.SetTemplateService(razrTemplService); // Run other startup tasks foreach (var task in IoC.StructureMapResolver.Container.GetAllInstances <IRunAtStartup>()) { task.Execute(); } }
public static Stream GetInventioPageStream(string path) { Stream ret = null; InventioPage page = PageWorker.SelectByPath(path, PageWorker.RepositoryWebConfig); if (page != null) { InventioLayout layout = LayoutWorker.SelectById(page.IdLayout, LayoutWorker.RepositoryWebConfig); if (layout != null) { string raw = System.Text.Encoding.UTF8.GetString(layout.Body); string parsed = string.Empty; // BEGIN RazorEngine Template // TODO igual hay que meterlo en global asax var config = new RazorEngine.Configuration.TemplateServiceConfiguration { //BaseTemplateType = typeof(InventioTemplateBase<>) BaseTemplateType = typeof(InventioTemplateBase <>), Resolver = new InventioTemplateResolver() }; using (var service = new TemplateService(config)) { RazorEngine.Razor.SetTemplateService(service); parsed = Razor.Parse(raw); } // END RazorEngine ret = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parsed), false); } } return(ret); }
/// <summary> /// Creates a Razor engine. /// </summary> /// <returns></returns> protected RazorEngine.Templating.IRazorEngineService CreateEngine() { var config = new RazorEngine.Configuration.TemplateServiceConfiguration { EncodedStringFactory = new RazorEngine.Text.RawStringFactory() }; return(RazorEngine.Templating.RazorEngineService.Create(config)); }
public TemplateEngine(DirectoryInfo directory) { var config = new RazorEngine.Configuration.TemplateServiceConfiguration { TemplateManager = new PackageTemplateManager(directory), CachingProvider = new DefaultCachingProvider(t => { }) }; Engine = RazorEngineService.Create(config); SourceDirectory = directory; WorkingDirectory = Directory.CreateDirectory(Path.Combine(directory.Parent.Parent.FullName, $"{directory.Parent.Name}.Content")); }
/// <summary> /// Recupera a configuração padrão. /// </summary> /// <param name="templateGetKey">Referencia do método para recupera a chave do modelo.</param> /// <returns></returns> public static RazorEngine.Configuration.ITemplateServiceConfiguration GetDefaultConfiguration(TemplateGetKeyHandle templateGetKey) { templateGetKey.Require("templateGetKey").NotNull(); var configuration = new RazorEngine.Configuration.TemplateServiceConfiguration { TemplateManager = new RazorTemplateManager(templateGetKey), CachingProvider = new RazorEngine.Templating.InvalidatingCachingProvider(), Activator = new RazorActivator(), BaseTemplateType = typeof(RazorBaseTemplate <>), EncodedStringFactory = new RazorEngine.Text.RawStringFactory(), Debug = true }; configuration.Namespaces.Add("System.Web.Helpers"); configuration.Namespaces.Add("System.Web.Mvc"); return(configuration); }
public string LoadTemplate(string template, object viewModel) { var templateContent = AttemptLoadEmailTemplate(template); //Configure RazorEngine var tplConfig = new RazorEngine.Configuration.TemplateServiceConfiguration { BaseTemplateType = typeof(MailTemplate<>) }; using (var service = new TemplateService(tplConfig)) { Razor.SetTemplateService(service); var compiledTemplate = Razor.Parse(templateContent, viewModel); return compiledTemplate; } }
public static void Initialize(IEnumerable <string> assemblyNames = null) { // do not reinit if (_razorService == null) { _cachingProvider = new PrecompiledCachingProvider(); var config = new RazorEngine.Configuration.TemplateServiceConfiguration { DisableTempFileLocking = true, EncodedStringFactory = new RawStringFactory(), //TemplateManager = new WatchingResolvePathTemplateManager(templatePaths, new InvalidatingCachingProvider()), TemplateManager = new PrecompiledTemplateManager(), CachingProvider = _cachingProvider }; _razorService = RazorEngineService.Create(config); // load templates var assemblies = new SortedSet <string> { "RIFF.Core", "RIFF.Framework" }; if (assemblyNames != null) { foreach (var assembly in assemblyNames) { if (assembly.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) { assemblies.Add(assembly.Substring(0, assembly.Length - 4)); } else { assemblies.Add(assembly); } } } foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies().Where(a => assemblies.Contains(a.GetName().Name))) { CacheTemplates(assembly); } } }
public void Process(string root, Options options) { try { var configPath = Path.Combine(root, "Site.config"); if (File.Exists(configPath)) { _config = SiteConfiguration.Load(configPath); } else { _config = new SiteConfiguration(); } if (options.Local) _config.Local = true; if (options.Verbose) _config.Verbose = true; _context = new SiteContext() { Config = _config, Options = options, ProjectDir = root, SourceDir = Path.Combine(root, _siteDirName), DestinationDir = Path.Combine(root, _htmlDirName), CodeDir = Path.Combine(root, _codeDirName), LayoutsDir = Path.Combine(root, _layoutsDirName), IncludesDir = Path.Combine(root, _includesDirName), TemplatesDir = Path.Combine(root, _templatesDirName), }; var resolver = new TemplateResolver(_context); var activator = new TemplateActivator(_context); var pageConfiguration = new RazorEngine.Configuration.TemplateServiceConfiguration() { BaseTemplateType = typeof(PageTemplate<>), Resolver = resolver, Activator = activator }; var startConfiguration = new RazorEngine.Configuration.TemplateServiceConfiguration() { BaseTemplateType = typeof(StartTemplate<>), Resolver = resolver, Activator = activator }; _pluginManager = new PluginManager(_context); _pluginManager.LoadPlugins(); _startProcessor = new StartProcessor(_context, startConfiguration); _context.InitializeService(pageConfiguration); ProcessPages(); RunGenerators(); } catch (PageProcessingException ex) { // NOTE: Line number information is inaccurate due to file changes. if (ex.InnerException is RazorEngine.Templating.TemplateCompilationException) { var inner = (RazorEngine.Templating.TemplateCompilationException)ex.InnerException; Console.Error.WriteLine(ex.Message); foreach (var err in inner.Errors) { string[] lines = ex.Text.Split('\n'); Console.Error.WriteLine("{0}({1}): {2}", ex.FileName, err.Line, err.ErrorText); // FIXME: The underlying generated file that caused // the error is gone at this point. // Console.Error.WriteLine("{0}", GetErrorLines(err)); } } else if (ex.InnerException is RazorEngine.Templating.TemplateParsingException) { var inner = (RazorEngine.Templating.TemplateParsingException)ex.InnerException; Console.Error.WriteLine(ex.Message); Console.Error.WriteLine("{0}: {1}", ex.FileName, inner.Message); } else { Console.Error.WriteLine("{0}: {1}", ex.FileName, ex.Message); } } catch (Exception ex) { Console.Error.WriteLine(ex.Message); } }
public StartProcessor(ISiteContext context, RazorEngine.Configuration.TemplateServiceConfiguration config) { _context = context; _startTemplateService = new RazorEngine.Templating.TemplateService(config); }
public void Process(string root, Options options) { try { var configPath = Path.Combine(root, "Site.config"); if (File.Exists(configPath)) { _config = SiteConfiguration.Load(configPath); } else { _config = new SiteConfiguration(); } if (options.Local) { _config.Local = true; } if (options.Verbose) { _config.Verbose = true; } _context = new SiteContext() { Config = _config, Options = options, ProjectDir = root, SourceDir = Path.Combine(root, _siteDirName), DestinationDir = Path.Combine(root, _htmlDirName), CodeDir = Path.Combine(root, _codeDirName), LayoutsDir = Path.Combine(root, _layoutsDirName), IncludesDir = Path.Combine(root, _includesDirName), TemplatesDir = Path.Combine(root, _templatesDirName), }; var resolver = new TemplateResolver(_context); var activator = new TemplateActivator(_context); var pageConfiguration = new RazorEngine.Configuration.TemplateServiceConfiguration() { BaseTemplateType = typeof(PageTemplate <>), Resolver = resolver, Activator = activator }; var startConfiguration = new RazorEngine.Configuration.TemplateServiceConfiguration() { BaseTemplateType = typeof(StartTemplate <>), Resolver = resolver, Activator = activator }; _pluginManager = new PluginManager(_context); _pluginManager.LoadPlugins(); _startProcessor = new StartProcessor(_context, startConfiguration); _context.InitializeService(pageConfiguration); ProcessPages(); RunGenerators(); } catch (PageProcessingException ex) { // NOTE: Line number information is inaccurate due to file changes. if (ex.InnerException is RazorEngine.Templating.TemplateCompilationException) { var inner = (RazorEngine.Templating.TemplateCompilationException)ex.InnerException; Console.Error.WriteLine(ex.Message); foreach (var err in inner.Errors) { string[] lines = ex.Text.Split('\n'); Console.Error.WriteLine("{0}({1}): {2}", ex.FileName, err.Line, err.ErrorText); // FIXME: The underlying generated file that caused // the error is gone at this point. // Console.Error.WriteLine("{0}", GetErrorLines(err)); } } else if (ex.InnerException is RazorEngine.Templating.TemplateParsingException) { var inner = (RazorEngine.Templating.TemplateParsingException)ex.InnerException; Console.Error.WriteLine(ex.Message); Console.Error.WriteLine("{0}: {1}", ex.FileName, inner.Message); } else { Console.Error.WriteLine("{0}: {1}", ex.FileName, ex.Message); } } catch (Exception ex) { Console.Error.WriteLine(ex.Message); } }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ModelBinders.Binders.DefaultBinder = new CustomModelBinder(); IoC.Init(); ValidatorConfig.Init(); // Configure view engine ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(IoC.StructureMapResolver.GetInstance<ThemeableViewEngine>()); // Configure razor parser var razrEngineConfig = new RazorEngine.Configuration.TemplateServiceConfiguration {BaseTemplateType = typeof (RazorTemplateBase<>)}; var razrTemplService = new TemplateService(razrEngineConfig); RazorEngine.Razor.SetTemplateService(razrTemplService); // Run other startup tasks foreach (var task in IoC.StructureMapResolver.Container.GetAllInstances<IRunAtStartup>()) { task.Execute(); } }