Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        /// <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));
        }
Esempio n. 4
0
        /// <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;
        }