Пример #1
0
 /// <summary>
 /// Initializes a new instance of <see cref="ChunkInheritanceUtility"/>.
 /// </summary>
 /// <param name="razorHost">The <see cref="MvcRazorHost"/> 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(
     [NotNull] MvcRazorHost razorHost,
     [NotNull] IChunkTreeCache chunkTreeCache,
     [NotNull] IReadOnlyList <Chunk> defaultInheritedChunks)
 {
     _razorHost = razorHost;
     _defaultInheritedChunks = defaultInheritedChunks;
     _chunkTreeCache         = chunkTreeCache;
 }
Пример #2
0
 public TagHelperMvcRazorHost(
     IChunkTreeCache chunkTreeCache,
     IShapeTableManager shapeTableManager)
     : base(chunkTreeCache)
 {
     TagHelperDescriptorResolver = new ViewComponentTagHelperDescriptorResolver(
         new TagHelperTypeResolver(),
         shapeTableManager);
 }
 /// <summary>
 /// Initializes a new instance of <see cref="ChunkInheritanceUtility"/>.
 /// </summary>
 /// <param name="razorHost">The <see cref="MvcRazorHost"/> 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(
     [NotNull] MvcRazorHost razorHost,
     [NotNull] IChunkTreeCache chunkTreeCache,
     [NotNull] IReadOnlyList<Chunk> defaultInheritedChunks)
 {
     _razorHost = razorHost;
     _defaultInheritedChunks = defaultInheritedChunks;
     _chunkTreeCache = chunkTreeCache;
 }
Пример #4
0
 public TagHelperMvcRazorHost(
     IChunkTreeCache chunkTreeCache,
     IShapeTableManager shapeTableManager,
     IThemeManager themeManager)
     : base(chunkTreeCache)
 {
     TagHelperDescriptorResolver = new ViewComponentTagHelperDescriptorResolver(
         new TagHelperTypeResolver(),
         shapeTableManager,
         themeManager);
 }
Пример #5
0
        public RazorHost(IExecutionContext executionContext, IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver resolver, IBasePageTypeProvider basePageTypeProvider) : base(chunkTreeCache, resolver)
        {
            DefaultBaseClass = basePageTypeProvider.BasePageType.FullName;
            DefaultInheritedChunks.OfType <SetBaseTypeChunk>().First().TypeName = DefaultBaseClass;  // The chunk is actually what injects the base name into the view
            EnableInstrumentation = false;

            // Add additional default namespaces from the execution context
            foreach (string ns in executionContext.Namespaces)
            {
                NamespaceImports.Add(ns);
            }
        }
Пример #6
0
        /// <summary>
        /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
        /// </summary>
        /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
        /// <param name="resolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve tag helpers on razor views.</param>
        public ShapeRazorHost(IChunkTreeCache chunkTreeCache, IHttpContextAccessor httpContextAccessor, ITagHelperDescriptorResolver resolver)
            : base(chunkTreeCache, resolver)
        {
            // We need to resolve the services using the scoped service provider
            // explicitly as IRazorViewEngine which is resolving IMvcRazorHost is
            // itself coming from the root service provider.

            // It's fine in this context as the TagHelperMvcRazorHost registration is Transient
            // which means we are not keeping any reference on IShapeTableManager and IThemeManager
            TagHelperDescriptorResolver = new ShapeTagHelperDescriptorResolver(
                new TagHelperTypeResolver(),
                new TagHelperDescriptorFactory(designTime: false),
                httpContextAccessor
            );
        }
        /// <summary>
        /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
        /// </summary>
        /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
        /// <param name="resolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve tag helpers on razor views.</param>
        public ShapeRazorHost(IChunkTreeCache chunkTreeCache, IHttpContextAccessor httpContextAccessor, ITagHelperDescriptorResolver resolver)
            : base(chunkTreeCache, resolver)
        {
            // We need to resolve the services using the scoped service provider
            // explicitly as IRazorViewEngine which is resolving IMvcRazorHost is
            // itself coming from the root service provider.

            // It's fine in this context as the TagHelperMvcRazorHost registration is Transient
            // which means we are not keeping any reference on IShapeTableManager and IThemeManager
            TagHelperDescriptorResolver = new ShapeTagHelperDescriptorResolver(
                new TagHelperTypeResolver(),
                new TagHelperDescriptorFactory(designTime: false),
                httpContextAccessor
                );
        }
        public TagHelperMvcRazorHost(
            IChunkTreeCache chunkTreeCache,
            IHttpContextAccessor httpContextAccessor)
            : base(chunkTreeCache)
        {
            // We need to resolve the services using the scoped service provider
            // explicitly as IRazorViewEngine which is resolving IMvcRazorHost is
            // itself coming from the root service provider.
            var httpContext = httpContextAccessor.HttpContext;

            // It's fine in this context as the TagHelperMvcRazorHost registration is Transient
            // which means we are not keeping any reference on IShapeTableManager and IThemeManager
            TagHelperDescriptorResolver = new ViewComponentTagHelperDescriptorResolver(
                new TagHelperTypeResolver(),
                (IShapeTableManager)httpContext.RequestServices.GetService(typeof(IShapeTableManager)),
                (IThemeManager)httpContext.RequestServices.GetService(typeof(IThemeManager))
                );
        }
        public TagHelperMvcRazorHost(
            IChunkTreeCache chunkTreeCache,
            IHttpContextAccessor httpContextAccessor)
            : base(chunkTreeCache)
        {
            // We need to resolve the services using the scoped service provider
            // explicitly as IRazorViewEngine which is resolving IMvcRazorHost is
            // itself coming from the root service provider.
            var httpContext = httpContextAccessor.HttpContext;

            // It's fine in this context as the TagHelperMvcRazorHost registration is Transient
            // which means we are not keeping any reference on IShapeTableManager and IThemeManager
            TagHelperDescriptorResolver = new ViewComponentTagHelperDescriptorResolver(
                new TagHelperTypeResolver(),
                (IShapeTableManager)httpContext.RequestServices.GetService(typeof(IShapeTableManager)),
                (IThemeManager)httpContext.RequestServices.GetService(typeof(IThemeManager))
            );
        }
Пример #10
0
        public RazorHost(IExecutionContext executionContext, IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver resolver, IBasePageTypeProvider basePageTypeProvider) : base(chunkTreeCache, resolver)
        {
            // Remove the backtick from generic class names
            string baseClassName = basePageTypeProvider.BasePageType.FullName;
            int    tickIndex     = baseClassName.IndexOf('`');

            if (tickIndex > 0)
            {
                baseClassName = baseClassName.Substring(0, tickIndex);
            }

            DefaultBaseClass = basePageTypeProvider.BasePageType.IsGenericTypeDefinition ? $"{baseClassName}<{ChunkHelper.TModelToken}>" : baseClassName;
            DefaultInheritedChunks.OfType <SetBaseTypeChunk>().First().TypeName = DefaultBaseClass;  // The chunk is actually what injects the base name into the view
            EnableInstrumentation = false;

            // Add additional default namespaces from the execution context
            foreach (string ns in executionContext.Namespaces)
            {
                NamespaceImports.Add(ns);
            }
        }
Пример #11
0
        /// <summary>
        /// Initializes a new instance of <see cref="ChunkInheritanceUtility"/>.
        /// </summary>
        /// <param name="razorHost">The <see cref="MvcRazorHost"/> 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(
            MvcRazorHost razorHost,
            IChunkTreeCache chunkTreeCache,
            IReadOnlyList <Chunk> defaultInheritedChunks)
        {
            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;
        }
Пример #12
0
        /// <summary>
        /// Initializes a new instance of <see cref="ChunkInheritanceUtility"/>.
        /// </summary>
        /// <param name="razorHost">The <see cref="MvcRazorHost"/> 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(
            MvcRazorHost razorHost,
            IChunkTreeCache chunkTreeCache,
            IReadOnlyList<Chunk> defaultInheritedChunks)
        {
            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;
        }
Пример #13
0
 /// <summary>
 /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
 /// </summary>
 /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
 public MvcRazorHost(IChunkTreeCache chunkTreeCache)
     : this(chunkTreeCache, new RazorPathNormalizer())
 {
 }
Пример #14
0
 public TestMvcRazorHost(IChunkTreeCache ChunkTreeCache)
     : base(ChunkTreeCache, new TagHelperDescriptorResolver(designTime: false))
 {
 }
Пример #15
0
 //public MyMvcRazorHost(string root)
 //{
 //    _host = new MvcRazorHost(root);
 //}
 public MyMvcRazorHost(IChunkTreeCache chunkTreeCache)
 {
     _chunkTreeCache = chunkTreeCache;
     _host = new MvcRazorHost(chunkTreeCache);
 }
Пример #16
0
 public MvcRazorHostWithNormalizedNewLine(IChunkTreeCache codeTreeCache)
     : base(codeTreeCache, new TagHelperDescriptorResolver(designTime: false))
 { }
 public PreMinifyingMvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver descriptorResolver)
 {
     _host = new MvcRazorHost(chunkTreeCache, descriptorResolver);
 }
 public ChunkVisitorMinifyingMvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver descriptorResolver)
 {
     _chunkTreeCache = chunkTreeCache;
     _host           = new MvcRazorHost(chunkTreeCache, descriptorResolver);
 }
Пример #19
0
 /// <summary>
 /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
 /// </summary>
 /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
 /// <param name="resolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve tag helpers on razor views.</param>
 public MvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver resolver)
     : this(chunkTreeCache, new RazorPathNormalizer())
 {
     TagHelperDescriptorResolver = resolver;
 }
Пример #20
0
 public TestMvcRazorHost(IChunkTreeCache ChunkTreeCache)
     : base(ChunkTreeCache, new TagHelperDescriptorResolver(designTime: false))
 {
 }
Пример #21
0
        internal MvcRazorHost(IChunkTreeCache chunkTreeCache, RazorPathNormalizer pathNormalizer)
            : base(new CSharpRazorCodeLanguage())
        {
            _pathNormalizer = pathNormalizer;
            _chunkTreeCache = chunkTreeCache;

            DefaultBaseClass = $"{BaseType}<{ChunkHelper.TModelToken}>";
            DefaultNamespace = "Asp";
            // Enable instrumentation by default to allow precompiled views to work with BrowserLink.
            EnableInstrumentation = true;
            GeneratedClassContext = new GeneratedClassContext(
                executeMethodName: "ExecuteAsync",
                writeMethodName: "Write",
                writeLiteralMethodName: "WriteLiteral",
                writeToMethodName: "WriteTo",
                writeLiteralToMethodName: "WriteLiteralTo",
                templateTypeName: "Microsoft.AspNet.Mvc.Razor.HelperResult",
                defineSectionMethodName: "DefineSection",
                generatedTagHelperContext: new GeneratedTagHelperContext
                {
                    ExecutionContextTypeName = typeof(TagHelperExecutionContext).FullName,
                    ExecutionContextAddMethodName = nameof(TagHelperExecutionContext.Add),
                    ExecutionContextAddTagHelperAttributeMethodName =
                        nameof(TagHelperExecutionContext.AddTagHelperAttribute),
                    ExecutionContextAddHtmlAttributeMethodName = nameof(TagHelperExecutionContext.AddHtmlAttribute),
                    ExecutionContextAddMinimizedHtmlAttributeMethodName =
                        nameof(TagHelperExecutionContext.AddMinimizedHtmlAttribute),
                    ExecutionContextOutputPropertyName = nameof(TagHelperExecutionContext.Output),

                    RunnerTypeName = typeof(TagHelperRunner).FullName,
                    RunnerRunAsyncMethodName = nameof(TagHelperRunner.RunAsync),

                    ScopeManagerTypeName = typeof(TagHelperScopeManager).FullName,
                    ScopeManagerBeginMethodName = nameof(TagHelperScopeManager.Begin),
                    ScopeManagerEndMethodName = nameof(TagHelperScopeManager.End),

                    TagHelperContentTypeName = nameof(TagHelperContent),

                    // Can't use nameof because RazorPage is not accessible here.
                    CreateTagHelperMethodName = "CreateTagHelper",
                    FormatInvalidIndexerAssignmentMethodName = "InvalidTagHelperIndexerAssignment",
                    StartTagHelperWritingScopeMethodName = "StartTagHelperWritingScope",
                    EndTagHelperWritingScopeMethodName = "EndTagHelperWritingScope",

                    WriteTagHelperAsyncMethodName = "WriteTagHelperAsync",
                    WriteTagHelperToAsyncMethodName = "WriteTagHelperToAsync",

                    // Can't use nameof because IHtmlHelper is (also) not accessible here.
                    MarkAsHtmlEncodedMethodName = HtmlHelperPropertyName + ".Raw",
                    BeginAddHtmlAttributeValuesMethodName = "BeginAddHtmlAttributeValues",
                    EndAddHtmlAttributeValuesMethodName = "EndAddHtmlAttributeValues",
                    AddHtmlAttributeValueMethodName = "AddHtmlAttributeValue",
                    HtmlEncoderPropertyName = "HtmlEncoder",
                    TagHelperContentGetContentMethodName = nameof(TagHelperContent.GetContent),
                })
            {
                BeginContextMethodName = "BeginContext",
                EndContextMethodName = "EndContext"
            };

            foreach (var ns in _defaultNamespaces)
            {
                NamespaceImports.Add(ns);
            }
        }
Пример #22
0
 public TestMvcRazorHost(IChunkTreeCache ChunkTreeCache)
     : base(ChunkTreeCache)
 {
 }
Пример #23
0
 /// <summary>
 /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
 /// </summary>
 /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
 public MvcRazorHost(IChunkTreeCache chunkTreeCache)
     : this(chunkTreeCache, new RazorPathNormalizer())
 {
 }
Пример #24
0
 /// <summary>
 /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
 /// </summary>
 /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
 /// <param name="resolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve tag helpers on razor views.</param>
 public MvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver resolver)
     : base(chunkTreeCache, resolver)
 {
 }
 public PreMinifyingMvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver descriptorResolver)
 {
     _host = new MvcRazorHost(chunkTreeCache, descriptorResolver);
 }
 public ScriptInjectorRazorHost(IChunkTreeCache codeTreeCache) : base(codeTreeCache)
 {
 }
Пример #27
0
 public MvcRazorHost(IChunkTreeCache chunkTreeCache)
     : base(chunkTreeCache)
 {
 }
Пример #28
0
 /// <summary>
 /// Initializes a new instance of <see cref="MvcRazorHost"/> using the specified <paramref name="chunkTreeCache"/>.
 /// </summary>
 /// <param name="chunkTreeCache">An <see cref="IChunkTreeCache"/> rooted at the application base path.</param>
 /// <param name="resolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve tag helpers on razor views.</param>
 public MvcRazorHost(IChunkTreeCache chunkTreeCache, ITagHelperDescriptorResolver resolver)
     : this(chunkTreeCache, new RazorPathNormalizer())
 {
     TagHelperDescriptorResolver = resolver;
 }
Пример #29
0
 public MvcRazorHostWithNormalizedNewLine(IChunkTreeCache codeTreeCache)
     : base(codeTreeCache)
 {
 }
Пример #30
0
        internal MvcRazorHost(IChunkTreeCache chunkTreeCache, RazorPathNormalizer pathNormalizer)
            : base(new CSharpRazorCodeLanguage())
        {
            _pathNormalizer = pathNormalizer;
            _chunkTreeCache = chunkTreeCache;

            DefaultBaseClass = $"{BaseType}<{ChunkHelper.TModelToken}>";
            DefaultNamespace = "Asp";
            // Enable instrumentation by default to allow precompiled views to work with BrowserLink.
            EnableInstrumentation = true;
            GeneratedClassContext = new GeneratedClassContext(
                executeMethodName: "ExecuteAsync",
                writeMethodName: "Write",
                writeLiteralMethodName: "WriteLiteral",
                writeToMethodName: "WriteTo",
                writeLiteralToMethodName: "WriteLiteralTo",
                templateTypeName: "Microsoft.AspNet.Mvc.Razor.HelperResult",
                defineSectionMethodName: "DefineSection",
                generatedTagHelperContext: new GeneratedTagHelperContext
            {
                ExecutionContextTypeName      = typeof(TagHelperExecutionContext).FullName,
                ExecutionContextAddMethodName = nameof(TagHelperExecutionContext.Add),
                ExecutionContextAddTagHelperAttributeMethodName =
                    nameof(TagHelperExecutionContext.AddTagHelperAttribute),
                ExecutionContextAddHtmlAttributeMethodName          = nameof(TagHelperExecutionContext.AddHtmlAttribute),
                ExecutionContextAddMinimizedHtmlAttributeMethodName =
                    nameof(TagHelperExecutionContext.AddMinimizedHtmlAttribute),
                ExecutionContextOutputPropertyName = nameof(TagHelperExecutionContext.Output),

                RunnerTypeName           = typeof(TagHelperRunner).FullName,
                RunnerRunAsyncMethodName = nameof(TagHelperRunner.RunAsync),

                ScopeManagerTypeName        = typeof(TagHelperScopeManager).FullName,
                ScopeManagerBeginMethodName = nameof(TagHelperScopeManager.Begin),
                ScopeManagerEndMethodName   = nameof(TagHelperScopeManager.End),

                TagHelperContentTypeName = nameof(TagHelperContent),

                // Can't use nameof because RazorPage is not accessible here.
                CreateTagHelperMethodName = "CreateTagHelper",
                FormatInvalidIndexerAssignmentMethodName = "InvalidTagHelperIndexerAssignment",
                StartTagHelperWritingScopeMethodName     = "StartTagHelperWritingScope",
                EndTagHelperWritingScopeMethodName       = "EndTagHelperWritingScope",

                WriteTagHelperAsyncMethodName   = "WriteTagHelperAsync",
                WriteTagHelperToAsyncMethodName = "WriteTagHelperToAsync",

                // Can't use nameof because IHtmlHelper is (also) not accessible here.
                MarkAsHtmlEncodedMethodName           = HtmlHelperPropertyName + ".Raw",
                BeginAddHtmlAttributeValuesMethodName = "BeginAddHtmlAttributeValues",
                EndAddHtmlAttributeValuesMethodName   = "EndAddHtmlAttributeValues",
                AddHtmlAttributeValueMethodName       = "AddHtmlAttributeValue",
                HtmlEncoderPropertyName = "HtmlEncoder",
                TagHelperContentGetContentMethodName = nameof(TagHelperContent.GetContent),
            })
            {
                BeginContextMethodName = "BeginContext",
                EndContextMethodName   = "EndContext"
            };

            foreach (var ns in _defaultNamespaces)
            {
                NamespaceImports.Add(ns);
            }
        }
Пример #31
0
 public MvcRazorHost(IChunkTreeCache chunkTreeCache)
     : base(chunkTreeCache)
 {
 }
Пример #32
0
 public PathValidatingChunkInheritanceUtility(MvcRazorHost razorHost, IChunkTreeCache chunkTreeCache)
     : base(razorHost, chunkTreeCache, defaultInheritedChunks: new Chunk[0])
 {
 }
Пример #33
0
 public MvcRazorHostWithNormalizedNewLine(IChunkTreeCache codeTreeCache)
     : base(codeTreeCache)
 { }
Пример #34
0
 public PathValidatingChunkInheritanceUtility(MvcRazorHost razorHost, IChunkTreeCache chunkTreeCache)
     : base(razorHost, chunkTreeCache, defaultInheritedChunks: new Chunk[0])
 {
 }
Пример #35
0
 public MvcRazorHostWithNormalizedNewLine(IChunkTreeCache codeTreeCache)
     : base(codeTreeCache, new TagHelperDescriptorResolver(designTime: false))
 {
 }
Пример #36
0
 public TestMvcRazorHost(IChunkTreeCache ChunkTreeCache)
     : base(ChunkTreeCache)
 {
 }
Пример #37
0
        //public MyMvcRazorHost(string root)
        //{
        //    _host = new MvcRazorHost(root);
        //}

        public MyMvcRazorHost(IChunkTreeCache chunkTreeCache)
        {
            _chunkTreeCache = chunkTreeCache;
            _host           = new MvcRazorHost(chunkTreeCache);
        }