/// <summary> /// Generates razor template by parsing given <param name="templateSource" /> /// </summary> /// <param name="templateSource"></param> /// <param name="modelTypeInfo"></param> /// <returns></returns> public string GenerateRazorTemplate(ITemplateSource templateSource, ModelTypeInfo modelTypeInfo) { var host = new RazorLightHost(null); if (modelTypeInfo != null) { host.DefaultModel = modelTypeInfo.TemplateTypeName; } return(Configuration.RazorTemplateCompiler.CompileTemplate(host, templateSource)); }
public string CompileTemplate(RazorLightHost host, ITemplateSource templateSource) { string className = ParserHelpers.SanitizeClassName(templateSource.TemplateKey); var templateEngine = new RazorTemplateEngine(host); using (var content = templateSource.CreateReader()) { GeneratorResults result = templateEngine.GenerateCode(content, className, host.DefaultNamespace, templateSource.FilePath); if (!result.Success) { throw new TemplateParsingException("Failed to parse razor page. See ParserErrors for more details", result.ParserErrors); } return(result.GeneratedCode); } }
/// <summary> /// Generates razor template by parsing given <param name="templateSource" /> /// </summary> /// <param name="templateSource"></param> /// <param name="modelTypeInfo"></param> /// <returns></returns> public string GenerateRazorTemplate(ITemplateSource templateSource, ModelTypeInfo modelTypeInfo) { var host = new RazorLightHost(null); //Set default model if (modelTypeInfo != null) { host.DefaultModel = modelTypeInfo.TemplateTypeName; } //Include namespaces if (Configuration.Namespaces != null) { foreach (string @namespace in Configuration.Namespaces) { host.NamespaceImports.Add(@namespace); } } return(Configuration.RazorTemplateCompiler.CompileTemplate(host, templateSource)); }
/// <summary> /// Initializes a new instance of <see cref="ChunkInheritanceUtility"/>. /// </summary> /// <param name="razorHost">The <see cref="RazorLightHost"/> used to parse <c>_ViewImports</c> pages.</param> /// <param name="chunkTreeCache"><see cref="IChunkTreeCache"/> that caches <see cref="ChunkTree"/> instances. /// </param> /// <param name="defaultInheritedChunks">Sequence of <see cref="Chunk"/>s inherited by default.</param> public ChunkInheritanceUtility( RazorLightHost razorHost, IReadOnlyList <Chunk> defaultInheritedChunks, IChunkTreeCache chunkTreeCache) { if (razorHost == null) { throw new ArgumentNullException(nameof(razorHost)); } if (chunkTreeCache == null) { throw new ArgumentNullException(nameof(chunkTreeCache)); } if (defaultInheritedChunks == null) { throw new ArgumentNullException(nameof(defaultInheritedChunks)); } _razorHost = razorHost; _defaultInheritedChunks = defaultInheritedChunks; _chunkTreeCache = chunkTreeCache; }