Exemple #1
0
 public InvoiceApiController(IRepository <Order> orderRepository, IWorkContext workContext, IRazorViewRenderer viewRender, IPdfConverter pdfConverter)
 {
     _orderRepository = orderRepository;
     _workContext     = workContext;
     _viewRender      = viewRender;
     _pdfConverter    = pdfConverter;
 }
Exemple #2
0
 public EmailSender(
     IRazorViewRenderer viewRenderer,
     IOptions <EmailOptions> emailOptions)
 {
     _viewRenderer = viewRenderer;
     _emailOptions = emailOptions;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RazorViewEngine"/> class.
 /// </summary>
 /// <param name="configuration">The <see cref="IRazorConfiguration"/> that should be used by the engine.</param>
 /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param>
 /// <param name="assemblyCatalog">An <see cref="IAssemblyCatalog"/> instance.</param>
 public RazorViewEngine(IRazorConfiguration configuration, INancyEnvironment environment, IAssemblyCatalog assemblyCatalog)
 {
     this.razorAssemblyProvider = new RazorAssemblyProvider(configuration, assemblyCatalog);
     this.viewRenderer = new CSharpRazorViewRenderer(this.razorAssemblyProvider);
     this.razorConfiguration = configuration;
     this.traceConfiguration = environment.GetValue<TraceConfiguration>();
     this.AddDefaultNameSpaces(this.viewRenderer.Host);
 }
Exemple #4
0
 public MessageService(IEmailSender emailSender, ISmsSender smsSender, IRazorViewRenderer razorViewRenderer, IOptions <AppSettings> appSettings, ILogger <MessageService> logger)
 {
     _emailSender       = emailSender;
     _smsSender         = smsSender;
     _razorViewRenderer = razorViewRenderer;
     _appSettings       = appSettings;
     _logger            = logger;
 }
 public PageBlockRenderer(
     IPageBlockTypeViewFileLocator pageBlockTypeViewFileLocator,
     IRazorViewRenderer razorViewRenderer
     )
 {
     _pageBlockTypeViewFileLocator = pageBlockTypeViewFileLocator;
     _razorViewRenderer            = razorViewRenderer;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RazorViewEngine"/> class.
 /// </summary>
 /// <param name="configuration">The <see cref="IRazorConfiguration"/> that should be used by the engine.</param>
 /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param>
 /// <param name="assemblyCatalog">An <see cref="IAssemblyCatalog"/> instance.</param>
 public RazorViewEngine(IRazorConfiguration configuration, INancyEnvironment environment, IAssemblyCatalog assemblyCatalog)
 {
     this.razorAssemblyProvider = new RazorAssemblyProvider(configuration, assemblyCatalog);
     this.viewRenderer          = new CSharpRazorViewRenderer(this.razorAssemblyProvider);
     this.razorConfiguration    = configuration;
     this.traceConfiguration    = environment.GetValue <TraceConfiguration>();
     this.AddDefaultNameSpaces(this.viewRenderer.Host);
 }
Exemple #7
0
 public AppService(IServiceProvider services)
 {
     _mapper             = services.GetRequiredService <IMapper>();
     _appSettings        = services.GetRequiredService <IOptions <AppSettings> >().Value;
     _webHostEnvironment = services.GetRequiredService <IWebHostEnvironment>();
     _razorViewRenderer  = services.GetRequiredService <IRazorViewRenderer>();
     _cacheManager       = services.GetRequiredService <ICacheManager>();
     _productService     = services.GetRequiredService <ProductService>();
     _tagService         = services.GetRequiredService <TagService>();
     _categoryService    = services.GetRequiredService <CategoryService>();
     _bannerService      = services.GetRequiredService <BannerService>();
     _cartService        = services.GetRequiredService <CartService>();
     _orderService       = services.GetRequiredService <OrderService>();
     _orderItemService   = services.GetRequiredService <OrderItemService>();
     _reviewService      = services.GetRequiredService <ReviewService>();
 }
 public AccountController(
     UserManager <User> userManager,
     SignInManager <User> signInManager,
     IStringLocalizerFactory stringLocalizerFactory,
     IRazorViewRenderer viewRender,
     IEmailSender emailSender,
     ISmsSender smsSender,
     ILoggerFactory loggerFactory)
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _localizer     = stringLocalizerFactory.Create(null);
     _viewRender    = viewRender;
     _emailSender   = emailSender;
     _smsSender     = smsSender;
     _logger        = loggerFactory.CreateLogger <AccountController>();
 }
Exemple #9
0
 public VisualEditorActionResultFactory(
     IStaticResourceReferenceRenderer staticResourceReferenceRenderer,
     IAdminRouteLibrary adminRouteLibrary,
     IPageResponseDataCache pageResponseDataCache,
     IJsonSerializerSettingsFactory jsonSerializerSettingsFactory,
     IRazorViewRenderer razorViewRenderer,
     IResourceLocator resourceLocator,
     IPermissionValidationService permissionValidationService
     )
 {
     _staticResourceReferenceRenderer = staticResourceReferenceRenderer;
     _adminRouteLibrary             = adminRouteLibrary;
     _pageResponseDataCache         = pageResponseDataCache;
     _jsonSerializerSettingsFactory = jsonSerializerSettingsFactory;
     _resourceLocator             = resourceLocator;
     _razorViewRenderer           = razorViewRenderer;
     _permissionValidationService = permissionValidationService;
 }
Exemple #10
0
        private Func <INancyRazorView> GenerateRazorViewFactory(IRazorViewRenderer renderer, GeneratorResults generatorResults, Type passedModelType, ViewLocationResult viewLocationResult)
        {
            var modelType  = GetModelTypeFromGeneratedCode(generatorResults, passedModelType);
            var sourceCode = string.Empty;

            if (this.razorConfiguration != null)
            {
                if (this.razorConfiguration.AutoIncludeModelNamespace)
                {
                    AddModelNamespace(generatorResults, modelType);
                }
            }

            using (var writer = new StringWriter())
            {
                renderer.Provider.GenerateCodeFromCompileUnit(generatorResults.GeneratedCode, writer, new CodeGeneratorOptions());
                sourceCode = writer.ToString();
            }

            var compilation = CSharpCompilation.Create(
                assemblyName: string.Format("Temp_{0}.dll", Guid.NewGuid().ToString("N")),
                syntaxTrees: new[] { CSharpSyntaxTree.ParseText(sourceCode) },
                references: this.GetMetadataReferences().Value,
                options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));

            using (var ms = new MemoryStream())
            {
                var result = compilation.Emit(ms);

                if (!result.Success)
                {
                    return(() => new NancyRazorErrorView(BuildErrorMessage(result, viewLocationResult, sourceCode), this.traceConfiguration));
                }

                ms.Seek(0, SeekOrigin.Begin);
                var viewAssembly = Assembly.Load(ms.ToArray());

                return(() => (INancyRazorView)Activator.CreateInstance(viewAssembly.GetType("RazorOutput.RazorView")));
            }
        }
Exemple #11
0
        private Func<INancyRazorView> GenerateRazorViewFactory(IRazorViewRenderer viewRenderer, GeneratorResults razorResult, Assembly referencingAssembly, Type passedModelType, ViewLocationResult viewLocationResult)
        {
            var outputAssemblyName =
                Path.Combine(Path.GetTempPath(), String.Format("Temp_{0}.dll", Guid.NewGuid().ToString("N")));

            var modelType =
                FindModelType(razorResult.Document, passedModelType, viewRenderer.ModelCodeGenerator);

            var assemblies = new List<string>
            {
                GetAssemblyPath(typeof(System.Runtime.CompilerServices.CallSite)),
                GetAssemblyPath(typeof(IHtmlString)),
                GetAssemblyPath(Assembly.GetExecutingAssembly()),
                GetAssemblyPath(modelType)
            };

            assemblies.AddRange(AppDomainAssemblyTypeScanner.Assemblies.Select(GetAssemblyPath));

            if (referencingAssembly != null)
            {
                assemblies.Add(GetAssemblyPath(referencingAssembly));
            }

            if (this.razorConfiguration != null)
            {
                var assemblyNames = this.razorConfiguration.GetAssemblyNames();
                if (assemblyNames != null)
                {
                    assemblies.AddRange(assemblyNames.Select(Assembly.Load).Select(GetAssemblyPath));
                }

                if (this.razorConfiguration.AutoIncludeModelNamespace)
                {
                    AddModelNamespace(razorResult, modelType);
                }
            }

            assemblies = assemblies
                .Union(viewRenderer.Assemblies)
                .ToList();

            var compilerParameters =
                new CompilerParameters(assemblies.ToArray(), outputAssemblyName);

            CompilerResults results;
            lock (this.compileLock)
            {
                results = viewRenderer.Provider.CompileAssemblyFromDom(compilerParameters, razorResult.GeneratedCode);
            }

            if (results.Errors.HasErrors)
            {
                var output = new string[results.Output.Count];
                results.Output.CopyTo(output, 0);

                var fullTemplateName = viewLocationResult.Location + "/" + viewLocationResult.Name + "." + viewLocationResult.Extension;
                var templateLines = GetViewBodyLines(viewLocationResult);
                var errors = results.Errors.OfType<CompilerError>().Where(ce => !ce.IsWarning).ToArray();
                var errorMessages = BuildErrorMessages(errors);
                var compilationSource = this.GetCompilationSource(viewRenderer.Provider, razorResult.GeneratedCode);

                MarkErrorLines(errors, templateLines);

                var lineNumber = 1;

                var errorDetails = string.Format(
                                        "Error compiling template: <strong>{0}</strong><br/><br/>Errors:<br/>{1}<br/><br/>Details:<br/>{2}<br/><br/>Compilation Source:<br/><pre><code>{3}</code></pre>",
                                        fullTemplateName,
                                        errorMessages,
                                        templateLines.Aggregate((s1, s2) => s1 + "<br/>" + s2),
                                        compilationSource.Aggregate((s1, s2) => s1 + "<br/>Line " + lineNumber++ + ":\t" + s2));

                return () => new NancyRazorErrorView(errorDetails);
            }

            var assembly = Assembly.LoadFrom(outputAssemblyName);
            if (assembly == null)
            {
                const string error = "Error loading template assembly";
                return () => new NancyRazorErrorView(error);
            }

            var type = assembly.GetType("RazorOutput.RazorView");
            if (type == null)
            {
                var error = String.Format("Could not find type RazorOutput.Template in assembly {0}", assembly.FullName);
                return () => new NancyRazorErrorView(error);
            }

            if (Activator.CreateInstance(type) as INancyRazorView == null)
            {
                const string error = "Could not construct RazorOutput.Template or it does not inherit from INancyRazorView";
                return () => new NancyRazorErrorView(error);
            }

            return () => (INancyRazorView)Activator.CreateInstance(type);
        }
 public OrderEmailService(IEmailSender emailSender, IRazorViewRenderer viewRender)
 {
     _emailSender = emailSender;
     _viewRender  = viewRender;
 }
Exemple #13
0
        private Func<INancyRazorView> GenerateRazorViewFactory(IRazorViewRenderer renderer, GeneratorResults generatorResults, Type passedModelType, ViewLocationResult viewLocationResult)
        {
            var modelType = GetModelTypeFromGeneratedCode(generatorResults, passedModelType);
            var sourceCode = string.Empty;

            if (this.razorConfiguration != null)
            {
                if (this.razorConfiguration.AutoIncludeModelNamespace)
                {
                    AddModelNamespace(generatorResults, modelType);
                }
            }

            using (var writer = new StringWriter())
            {
                renderer.Provider.GenerateCodeFromCompileUnit(generatorResults.GeneratedCode, writer, new CodeGeneratorOptions());
                sourceCode = writer.ToString();
            }

            var compilation = CSharpCompilation.Create(
                assemblyName: string.Format("Temp_{0}.dll", Guid.NewGuid().ToString("N")),
                syntaxTrees: new[] { CSharpSyntaxTree.ParseText(sourceCode) },
                references: this.GetMetadataReferences().Value,
                options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));

            using (var ms = new MemoryStream())
            {
                var result = compilation.Emit(ms);

                if (!result.Success)
                {
                    return () => new NancyRazorErrorView(BuildErrorMessage(result, viewLocationResult, sourceCode), this.traceConfiguration);
                }

                ms.Seek(0, SeekOrigin.Begin);
                var viewAssembly = Assembly.Load(ms.ToArray());

                return () => (INancyRazorView) Activator.CreateInstance(viewAssembly.GetType("RazorOutput.RazorView"));
            }
        }
Exemple #14
0
        private Func <INancyRazorView> GenerateRazorViewFactory(IRazorViewRenderer viewRenderer, GeneratorResults razorResult, Assembly referencingAssembly, Type passedModelType, ViewLocationResult viewLocationResult)
        {
            var outputAssemblyName =
                Path.Combine(Path.GetTempPath(), String.Format("Temp_{0}.dll", Guid.NewGuid().ToString("N")));

            var modelType =
                FindModelType(razorResult.Document, passedModelType, viewRenderer.ModelCodeGenerator);

            var assemblies = new List <string>
            {
                GetAssemblyPath(typeof(System.Runtime.CompilerServices.CallSite)),
                GetAssemblyPath(typeof(IHtmlString)),
                GetAssemblyPath(Assembly.GetExecutingAssembly()),
                GetAssemblyPath(modelType)
            };

            assemblies.AddRange(AppDomainAssemblyTypeScanner.Assemblies.Select(GetAssemblyPath));

            if (referencingAssembly != null)
            {
                assemblies.Add(GetAssemblyPath(referencingAssembly));
            }

            if (this.razorConfiguration != null)
            {
                var assemblyNames = this.razorConfiguration.GetAssemblyNames();
                if (assemblyNames != null)
                {
                    assemblies.AddRange(assemblyNames.Select(Assembly.Load).Select(GetAssemblyPath));
                }

                if (this.razorConfiguration.AutoIncludeModelNamespace)
                {
                    AddModelNamespace(razorResult, modelType);
                }
            }

            assemblies = assemblies
                         .Union(viewRenderer.Assemblies)
                         .ToList();

            var compilerParameters =
                new CompilerParameters(assemblies.ToArray(), outputAssemblyName);

            CompilerResults results;

            lock (this.compileLock)
            {
                results = viewRenderer.Provider.CompileAssemblyFromDom(compilerParameters, razorResult.GeneratedCode);
            }

            if (results.Errors.HasErrors)
            {
                var output = new string[results.Output.Count];
                results.Output.CopyTo(output, 0);

                var fullTemplateName  = viewLocationResult.Location + "/" + viewLocationResult.Name + "." + viewLocationResult.Extension;
                var templateLines     = GetViewBodyLines(viewLocationResult);
                var errors            = results.Errors.OfType <CompilerError>().Where(ce => !ce.IsWarning).ToArray();
                var errorMessages     = BuildErrorMessages(errors);
                var compilationSource = this.GetCompilationSource(viewRenderer.Provider, razorResult.GeneratedCode);

                MarkErrorLines(errors, templateLines);

                var lineNumber = 1;

                var errorDetails = string.Format(
                    "Error compiling template: <strong>{0}</strong><br/><br/>Errors:<br/>{1}<br/><br/>Details:<br/>{2}<br/><br/>Compilation Source:<br/><pre><code>{3}</code></pre>",
                    fullTemplateName,
                    errorMessages,
                    templateLines.Aggregate((s1, s2) => s1 + "<br/>" + s2),
                    compilationSource.Aggregate((s1, s2) => s1 + "<br/>Line " + lineNumber++ + ":\t" + s2));

                return(() => new NancyRazorErrorView(errorDetails));
            }

            var assembly = Assembly.LoadFrom(outputAssemblyName);

            if (assembly == null)
            {
                const string error = "Error loading template assembly";
                return(() => new NancyRazorErrorView(error));
            }

            var type = assembly.GetType("RazorOutput.RazorView");

            if (type == null)
            {
                var error = String.Format("Could not find type RazorOutput.Template in assembly {0}", assembly.FullName);
                return(() => new NancyRazorErrorView(error));
            }

            if (Activator.CreateInstance(type) as INancyRazorView == null)
            {
                const string error = "Could not construct RazorOutput.Template or it does not inherit from INancyRazorView";
                return(() => new NancyRazorErrorView(error));
            }

            return(() => (INancyRazorView)Activator.CreateInstance(type));
        }
Exemple #15
0
 public EmailSender()
 {
     _contextAccessor = Engine.Services.Resolve <IHttpContextAccessor>();
     _renderer        = Engine.Services.Resolve <IRazorViewRenderer>();
 }
Exemple #16
0
 public PdfRenderer(IRazorViewRenderer renderer, IHostingEnvironment environment)
 {
     _renderer    = renderer;
     _environment = environment;
 }