public RazorViewToStringRenderer(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider,
     IServiceProvider serviceProvider)
 {
     _viewEngine = viewEngine;
     _tempDataProvider = tempDataProvider;
     _serviceProvider = serviceProvider;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of <see cref="RazorView"/>
 /// </summary>
 /// <param name="viewEngine">The <see cref="IRazorViewEngine"/> used to locate Layout pages.</param>
 /// <param name="pageActivator">The <see cref="IRazorPageActivator"/> used to activate pages.</param>
 /// <param name="viewStartProvider">The <see cref="IViewStartProvider"/> used for discovery of _ViewStart
 /// <param name="razorPage">The <see cref="IRazorPage"/> instance to execute.</param>
 /// <param name="isPartial">Determines if the view is to be executed as a partial.</param>
 /// pages</param>
 public RazorView(IRazorViewEngine viewEngine,
                  IViewStartProvider viewStartProvider,
                  IRazorPage razorPage,
                  bool isPartial)
 {
     _viewEngine = viewEngine;
     _viewStartProvider = viewStartProvider;
     RazorPage = razorPage;
     IsPartial = isPartial;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of <see cref="RazorView"/>
 /// </summary>
 /// <param name="viewEngine">The <see cref="IRazorViewEngine"/> used to locate Layout pages.</param>
 /// <param name="pageActivator">The <see cref="IRazorPageActivator"/> used to activate pages.</param>
 /// <param name="viewStartProvider">The <see cref="IViewStartProvider"/> used for discovery of _ViewStart
 /// <param name="razorPage">The <see cref="IRazorPage"/> instance to execute.</param>
 /// <param name="htmlEncoder">The HTML encoder.</param>
 /// <param name="isPartial">Determines if the view is to be executed as a partial.</param>
 /// pages</param>
 public RazorView(
     IRazorViewEngine viewEngine,
     IRazorPageActivator pageActivator,
     IViewStartProvider viewStartProvider,
     IRazorPage razorPage,
     IHtmlEncoder htmlEncoder,
     bool isPartial)
 {
     _viewEngine = viewEngine;
     _pageActivator = pageActivator;
     _viewStartProvider = viewStartProvider;
     RazorPage = razorPage;
     _htmlEncoder = htmlEncoder;
     IsPartial = isPartial;
 }
Exemplo n.º 4
0
        public TenantLayoutSelector(
            IRazorViewEngine viewEngine,
            ISiteResolver siteResolver,
            IOptions<LayoutSelectorOptions> layoutOptionsAccesor,
            ILogger<TenantLayoutSelector> logger)
        {
            if (viewEngine == null) { throw new ArgumentNullException(nameof(viewEngine)); }
            if (siteResolver == null) { throw new ArgumentNullException(nameof(siteResolver)); }
            if (logger == null) { throw new ArgumentNullException(nameof(logger)); }
            if (layoutOptionsAccesor == null) { throw new ArgumentNullException(nameof(layoutOptionsAccesor)); }

            this.viewEngine = viewEngine;
            this.siteResolver = siteResolver;
            options = layoutOptionsAccesor.Value;
            log = logger;
        }
Exemplo n.º 5
0
        public TenantLayoutSelector(
            IRazorViewEngine viewEngine,
            SiteSettings currentSite,
            IOptions<LayoutSelectorOptions> layoutOptionsAccesor,
            ILogger<TenantLayoutSelector> logger)
        {
            if (viewEngine == null) { throw new ArgumentNullException(nameof(viewEngine)); }
            if (currentSite == null) { throw new ArgumentNullException(nameof(currentSite)); }
            if (logger == null) { throw new ArgumentNullException(nameof(logger)); }
            if (layoutOptionsAccesor == null) { throw new ArgumentNullException(nameof(layoutOptionsAccesor)); }

            this.viewEngine = viewEngine;
            site = currentSite;
            options = layoutOptionsAccesor.Value;
            log = logger;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Initializes a new instance of <see cref="RazorView"/>
        /// </summary>
        /// <param name="viewEngine">The <see cref="IRazorViewEngine"/> used to locate Layout pages.</param>
        /// <param name="pageActivator">The <see cref="IRazorPageActivator"/> used to activate pages.</param>
        /// <param name="viewStartPages">The sequence of <see cref="IRazorPage" /> instances executed as _ViewStarts.
        /// </param>
        /// <param name="razorPage">The <see cref="IRazorPage"/> instance to execute.</param>
        /// <param name="htmlEncoder">The HTML encoder.</param>
        public RazorView(
            IRazorViewEngine viewEngine,
            IRazorPageActivator pageActivator,
            IReadOnlyList<IRazorPage> viewStartPages,
            IRazorPage razorPage,
            HtmlEncoder htmlEncoder)
        {
            if (viewEngine == null)
            {
                throw new ArgumentNullException(nameof(viewEngine));
            }

            if (pageActivator == null)
            {
                throw new ArgumentNullException(nameof(pageActivator));
            }

            if (viewStartPages == null)
            {
                throw new ArgumentNullException(nameof(viewStartPages));
            }

            if (razorPage == null)
            {
                throw new ArgumentNullException(nameof(razorPage));
            }

            if (htmlEncoder == null)
            {
                throw new ArgumentNullException(nameof(htmlEncoder));
            }

            _viewEngine = viewEngine;
            _pageActivator = pageActivator;
            ViewStartPages = viewStartPages;
            RazorPage = razorPage;
            _htmlEncoder = htmlEncoder;
        }
Exemplo n.º 7
0
        /// <inheritdoc />
        public IView GetView(
            IRazorViewEngine viewEngine,
            IRazorPage page,
            bool isPartial)
        {
            if (viewEngine == null)
            {
                throw new ArgumentNullException(nameof(viewEngine));
            }

            if (page == null)
            {
                throw new ArgumentNullException(nameof(page));
            }

            var razorView = new RazorView(
                viewEngine,
                _pageActivator,
                _viewStartProvider,
                page,
                _htmlEncoder,
                isPartial);
            return razorView;
        }
 public RazorHelper(IRazorViewEngine viewEngine)
 {
     _viewEngine = viewEngine;
 }
 public TemplateService(IRazorViewEngine viewEngine, IServiceProvider serviceProvider, ITempDataProvider tempDataProvider)
 {
     _viewEngine       = viewEngine;
     _serviceProvider  = serviceProvider;
     _tempDataProvider = tempDataProvider;
 }
Exemplo n.º 10
0
 /// <inheritdoc />
 public PrecompiledMvcView(IRazorViewEngine viewEngine, IRazorPageActivator pageActivator, IReadOnlyList <IRazorPage> viewStartPages, IRazorPage razorPage, HtmlEncoder htmlEncoder, DiagnosticSource diagnosticSource)
     : base(viewEngine, pageActivator, viewStartPages, razorPage, htmlEncoder, diagnosticSource)
 {
     _pageActivator = pageActivator;
 }
Exemplo n.º 11
0
 public RenderTemplate(IRazorViewEngine viewEngine)
 {
     _viewEngine = viewEngine;
 }
Exemplo n.º 12
0
        public IEnumerable <IDocument> Execute(IReadOnlyList <IDocument> inputs, IExecutionContext context)
        {
            // Register all the MVC and Razor services
            // In the future, if DI is implemented for all Wyam, the IExecutionContext would be registered as a service
            // and the IHostingEnviornment would be registered as transient with the execution context provided in ctor
            IServiceCollection serviceCollection = new ServiceCollection();
            IMvcCoreBuilder    builder           = serviceCollection
                                                   .AddMvcCore()
                                                   .AddRazorViewEngine();

            builder.PartManager.FeatureProviders.Add(new MetadataReferenceFeatureProvider(context));
            serviceCollection.Configure <RazorViewEngineOptions>(options =>
            {
                options.ViewLocationExpanders.Add(new ViewLocationExpander());
            });
            serviceCollection
            .AddSingleton <ILoggerFactory, TraceLoggerFactory>()
            .AddSingleton <DiagnosticSource, SilentDiagnosticSource>()
            .AddSingleton <IHostingEnvironment, HostingEnvironment>()
            .AddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>()
            .AddSingleton <IExecutionContext>(context)
            .AddSingleton <IBasePageTypeProvider>(new BasePageTypeProvider(_basePageType ?? typeof(RazorPage)))
            .AddScoped <IMvcRazorHost, RazorHost>();
            IServiceProvider services = serviceCollection.BuildServiceProvider();

            // Eliminate input documents that we shouldn't process
            List <IDocument> validInputs = inputs
                                           .Where(x => _ignorePrefix == null ||
                                                  !x.ContainsKey(Keys.SourceFileName) ||
                                                  !x.FilePath(Keys.SourceFileName).FullPath.StartsWith(_ignorePrefix))
                                           .ToList();

            // Compile and evaluate the pages in parallel
            IServiceScopeFactory scopeFactory = services.GetRequiredService <IServiceScopeFactory>();

            return(validInputs.AsParallel().Select(input =>
            {
                Trace.Verbose("Compiling Razor for {0}", input.SourceString());
                using (var scope = scopeFactory.CreateScope())
                {
                    // Get services
                    IRazorViewEngine viewEngine = services.GetRequiredService <IRazorViewEngine>();
                    IRazorPageActivator pageActivator = services.GetRequiredService <IRazorPageActivator>();
                    HtmlEncoder htmlEncoder = services.GetRequiredService <HtmlEncoder>();
                    IRazorPageFactoryProvider pageFactoryProvider = services.GetRequiredService <IRazorPageFactoryProvider>();
                    IRazorCompilationService razorCompilationService = services.GetRequiredService <IRazorCompilationService>();
                    IHostingEnvironment hostingEnviornment = services.GetRequiredService <IHostingEnvironment>();

                    // Compile the view
                    string relativePath = GetRelativePath(input, context);
                    FilePath viewStartLocationPath = _viewStartPath?.Invoke <FilePath>(input, context);
                    string viewStartLocation = viewStartLocationPath != null ? GetRelativePath(viewStartLocationPath, context) : null;
                    string layoutLocation = _layoutPath?.Invoke <FilePath>(input, context)?.FullPath;
                    IView view;
                    using (Stream stream = input.GetStream())
                    {
                        view = GetViewFromStream(relativePath, stream, viewStartLocation, layoutLocation, viewEngine, pageActivator,
                                                 htmlEncoder, pageFactoryProvider, hostingEnviornment.WebRootFileProvider, razorCompilationService);
                    }

                    // Render the view
                    Trace.Verbose("Processing Razor for {0}", input.SourceString());
                    using (StringWriter output = new StringWriter())
                    {
                        Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext =
                            GetViewContext(scope.ServiceProvider, view, input, context, output);
                        viewContext.View.RenderAsync(viewContext).GetAwaiter().GetResult();
                        return context.GetDocument(input, output.ToString());
                    }
                }
            }));
        }
Exemplo n.º 13
0
 public RazorViewFinder(ITempDataProvider tempDataProvider, IServiceProvider serviceProvider, IRazorViewEngine viewEngine,
                        ILogger <RazorViewFinder> logger)
 {
     _tempDataProvider = tempDataProvider;
     _serviceProvider  = serviceProvider;
     _viewEngine       = viewEngine;
     _logger           = logger;
 }
 public RazorViewRenderer(IServiceProvider serviceProvider, ITempDataProvider tempDataProvider, IRazorViewEngine razorViewEngine)
 {
     _serviceProvider  = serviceProvider;
     _tempDataProvider = tempDataProvider;
     _razorViewEngine  = razorViewEngine;
 }
Exemplo n.º 15
0
 public NotificationService(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     this.razorViewEngine  = razorViewEngine;
     this.tempDataProvider = tempDataProvider;
     this.serviceProvider  = serviceProvider;
 }
Exemplo n.º 16
0
 public RazorRunner(IRazorViewEngine razorViewEngine, IServiceProvider serviceProvider)
 {
     this._razorViewEngine = razorViewEngine;
     this._serviceProvider = serviceProvider;
 }
Exemplo n.º 17
0
 public TemplateHelper(IRazorViewEngine engine, IServiceProvider serviceProvider, ITempDataProvider tempDataProvider)
 {
     this._razorViewEngine  = engine;
     this._serviceProvider  = serviceProvider;
     this._tempDataProvider = tempDataProvider;
 }
Exemplo n.º 18
0
 public HtmlDynamicRender(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _razorViewEngine  = razorViewEngine;
     _tempDataProvider = tempDataProvider;
     _serviceProvider  = serviceProvider;
 }
Exemplo n.º 19
0
 public ViewRenderService(IRazorViewEngine viewEngine, IHttpContextAccessor httpContextAccessor)
 {
     _viewEngine          = viewEngine;
     _httpContextAccessor = httpContextAccessor;
 }
Exemplo n.º 20
0
 public ViewRender(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     this.viewEngine       = viewEngine;
     this.tempDataProvider = tempDataProvider;
     this.serviceProvider  = serviceProvider;
 }
 public RazorRenderingService(IRazorViewEngine engine, ITempDataProvider tmp)
 {
     _razorViewEngine  = engine;
     _tempDataProvider = tmp;
 }
 public ViewRenderer(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider provider)
 {
     _viewEngine       = viewEngine;
     _tempDataProvider = tempDataProvider;
     _provider         = provider;
 }
Exemplo n.º 23
0
        public async Task <string> RenderViewToStringAsync(string viewName, object model, IRazorViewEngine viewEngine)
        {
            var actionContext = GetActionContext();
            var view          = FindView(actionContext, viewName, viewEngine);

            using (var output = new StringWriter())
            {
                var viewContext = new ViewContext(
                    actionContext,
                    view,
                    new ViewDataDictionary(
                        metadataProvider: new EmptyModelMetadataProvider(),
                        modelState: new ModelStateDictionary())
                {
                    Model = model
                },
                    new TempDataDictionary(
                        actionContext.HttpContext,
                        _tempDataProvider),
                    output,
                    new HtmlHelperOptions());

                await view.RenderAsync(viewContext);

                return(output.ToString());
            }
        }
Exemplo n.º 24
0
 public ViewRenderService(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _viewEngine       = viewEngine ?? throw new ArgumentNullException(nameof(viewEngine));
     _tempDataProvider = tempDataProvider ?? throw new ArgumentNullException(nameof(tempDataProvider));
     _serviceProvider  = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
Exemplo n.º 25
0
 public ViewRenderService(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _razorViewEngine  = razorViewEngine;
     _tempDataProvider = tempDataProvider;
     _serviceProvider  = serviceProvider;
 }
Exemplo n.º 26
0
 public RazorViewToStringRenderer(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _viewEngine       = viewEngine;
     _tempDataProvider = tempDataProvider;
     _serviceProvider  = serviceProvider;
 }
 public ViewRenderService(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider, IHostingEnvironment env, IHttpContextAccessor ctx)
 {
     _razorViewEngine = razorViewEngine; _tempDataProvider = tempDataProvider; _serviceProvider = serviceProvider; _env = env; _http = ctx.HttpContext;
 }
Exemplo n.º 28
0
 public RazorViewToStringRenderer(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     this.RazorViewEngine  = razorViewEngine;
     this.TempDataProvider = tempDataProvider;
     this.ServiceProvider  = serviceProvider;
 }
 public RazorEmailTemplateRenderer(IRazorViewEngine razorViewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _razorViewEngine  = razorViewEngine ?? throw new ArgumentNullException(nameof(razorViewEngine));
     _tempDataProvider = tempDataProvider ?? throw new ArgumentNullException(nameof(tempDataProvider));
     _serviceProvider  = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
Exemplo n.º 30
0
 /// <inheritdoc />
 public RazorViewOPtionsSetup(IRazorViewEngine razorViewEngine)
 {
     _compositePrecompiledMvcEngine = razorViewEngine;
 }
 public ClientesController(IConverter converter, IRazorViewEngine engine, IServiceProvider service, ITempDataProvider provider)
 {
     this._converter       = converter;
     this._templateService = new TemplateService(engine, service, provider);
 }
Exemplo n.º 32
0
 /// <summary>
 /// 获取Razor视图
 /// </summary>
 /// <param name="razorViewEngine">Razor视图引擎</param>
 /// <param name="actionContext">操作上下文</param>
 /// <param name="info">路由信息</param>
 /// <returns></returns>
 protected virtual ViewEngineResult GetView(IRazorViewEngine razorViewEngine, ActionContext actionContext, RouteInformation info)
 {
     return(razorViewEngine.FindView(actionContext, info.ViewName.IsEmpty() ? info.ActionName : info.ViewName,
                                     !info.IsPartialView));
 }
Exemplo n.º 33
0
 public EmailViewRenderService(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     _viewEngine       = viewEngine;
     _tempDataProvider = tempDataProvider;
     _serviceProvider  = serviceProvider;
 }
Exemplo n.º 34
0
 public PxRazorViewToStringRenderer(IRazorViewEngine viewEngine, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider)
 {
     this._viewEngine       = viewEngine;
     this._tempDataProvider = tempDataProvider;
     this._serviceProvider  = serviceProvider;
 }
Exemplo n.º 35
0
 public MvcModuleSetup(ApplicationPartManager partManager, IReferenceLoader referenceLoader,
                       IPluginsAssemblyLoadContexts pluginsLoadContexts, DynamicChangeTokenProvider dynamicChangeTokenProvider,
                       INotificationRegister notificationRegister, IOptions <PluginOptions> options, IWebHostEnvironment webHostEnvironment, IRazorViewEngine razorViewEngine, IViewCompilerProvider viewCompiler)
 {
     _partManager                = partManager;
     _referenceLoader            = referenceLoader;
     _pluginsLoadContexts        = pluginsLoadContexts;
     _dynamicChangeTokenProvider = dynamicChangeTokenProvider;
     _notificationRegister       = notificationRegister;
     _pluginOptions              = options.Value;
     _env = webHostEnvironment;
     //_baseDirectory = AppContext.BaseDirectory;
     _baseDirectory   = _env.ContentRootPath;
     _razorViewEngine = razorViewEngine;
     _viewCompiler    = viewCompiler;
 }
Exemplo n.º 36
0
        public static async Task <string> NccRenderToStringAsync(this ViewContext context, IRazorViewEngine razorViewEngine, string viewPath, object model)
        {
            using (var sw = new StringWriter())
            {
                var viewResult = razorViewEngine.GetView("", viewPath, false);

                if (viewResult.View == null)
                {
                    throw new ArgumentNullException($"{viewPath} does not match any available view");
                }

                if (model != null)
                {
                    context.ViewData.Model = model;
                }

                var viewContext = new ViewContext(
                    context,
                    viewResult.View,
                    context.ViewData,
                    context.TempData,
                    sw,
                    new HtmlHelperOptions()
                    );

                await viewResult.View.RenderAsync(viewContext);

                return(sw.ToString());
            }
        }
Exemplo n.º 37
0
 /// <summary>
 /// 获取视图
 /// </summary>
 /// <param name="razorViewEngine">Razor视图引擎</param>
 /// <param name="actionContext">操作上下文</param>
 /// <param name="viewName">视图名</param>
 /// <returns></returns>
 private ViewEngineResult GetView(IRazorViewEngine razorViewEngine, ActionContext actionContext, string viewName)
 {
     return(razorViewEngine.FindView(actionContext, viewName, true));
 }