Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        /// <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));
        }
Exemplo n.º 8
0
        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"));
        }
Exemplo n.º 9
0
        /// <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;
            }
        }
Exemplo n.º 11
0
        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);
                }
            }
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
 public StartProcessor(ISiteContext context, RazorEngine.Configuration.TemplateServiceConfiguration config)
 {
     _context = context;
     _startTemplateService = new RazorEngine.Templating.TemplateService(config);
 }
Exemplo n.º 14
0
        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);
            }
        }
Exemplo n.º 15
0
        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();
            }
        }