private void Init()
        {
            // touch assembly
            SyntaxFactory.Token(SyntaxKind.NullKeyword);

            InitOptions();
            if (Options.FullCompile)
                if (!Directory.Exists(Options.OutputPath)) Directory.CreateDirectory(Options.OutputPath);
            var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFrom(Options.WebSiteAssembly));
            configuration = GetCachedConfiguration(wsa, Options.WebSitePath);
            bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), configuration);
            configuration.ServiceLocator.RegisterSingleton<IBindingCompiler>(() => bindingCompiler);
            configuration.ServiceLocator.RegisterSingleton<IControlResolver>(() => new OfflineCompilationControlResolver(configuration, this));
            if (Options.DothtmlFiles == null) Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray();
            controlTreeResolver = configuration.ServiceLocator.GetService<IControlTreeResolver>();
            fileLoader = configuration.ServiceLocator.GetService<IMarkupFileLoader>();
            if (Options.FullCompile)
            {
                compiler = configuration.ServiceLocator.GetService<IViewCompiler>();
                compilation = compiler.CreateCompilation(Options.AssemblyName);
            }

            if (Options.SerializeConfig)
            {
                result.Configuration = configuration;
            }

            // touch assemblies
        }
Exemple #2
0
 public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, CompiledAssemblyCache compiledAssemblyCache)
 {
     this.config = config.Value;
     this.controlTreeResolver     = controlTreeResolver;
     this.bindingCompiler         = bindingCompiler;
     this.controlValidatorFactory = controlValidatorFactory;
     this.assemblyCache           = compiledAssemblyCache;
 }
 public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, DotvvmMarkupConfiguration markupConfiguration)
 {
     this.config = config.Value;
     this.controlTreeResolver     = controlTreeResolver;
     this.bindingCompiler         = bindingCompiler;
     this.assemblyCache           = CompiledAssemblyCache.Instance;
     this.controlValidatorFactory = controlValidatorFactory;
     this.markupConfiguration     = markupConfiguration;
 }
 public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, DotvvmMarkupConfiguration markupConfiguration)
 {
     this.config = config.Value;
     this.controlTreeResolver       = controlTreeResolver;
     this.bindingCompiler           = bindingCompiler;
     this.assemblyCache             = CompiledAssemblyCache.Instance;
     this.controlValidatorFactory   = controlValidatorFactory;
     this.markupConfiguration       = markupConfiguration;
     this.referencedAssembliesCache = new Lazy <IEnumerable <Assembly> >(BuildReferencedAssembliesCache, true);
 }
Exemple #5
0
        private void Init()
        {
            if (Options.FullCompile)
            {
                // touch assembly
                SyntaxFactory.Token(SyntaxKind.NullKeyword);
                InitOptions();

                if (!Directory.Exists(Options.OutputPath))
                {
                    Directory.CreateDirectory(Options.OutputPath);
                }
            }

            var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFile(Options.WebSiteAssembly));

            configuration = GetCachedConfiguration(wsa, Options.WebSitePath,
                                                   (services) => {
                if (Options.FullCompile)
                {
                    throw new NotImplementedException();
                    //TODO: LAST PARAMETER | bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), null);
                    services.AddSingleton <IBindingCompiler>(bindingCompiler);
                    services.AddSingleton <IExpressionToDelegateCompiler>(bindingCompiler.GetExpressionToDelegateCompiler());
                }
            });
            if (Options.SerializeConfig)
            {
                result.Configuration = configuration;
            }

            if (Options.DothtmlFiles == null)
            {
                Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).Where(r => !string.IsNullOrWhiteSpace(r)).ToArray();
            }


            if (Options.FullCompile || Options.CheckBindingErrors)
            {
                compiledAssemblyCache = configuration.ServiceProvider.GetService <CompiledAssemblyCache>();
                controlTreeResolver   = configuration.ServiceProvider.GetService <IControlTreeResolver>();
                fileLoader            = configuration.ServiceProvider.GetService <IMarkupFileLoader>();
            }

            if (Options.FullCompile)
            {
                compiler    = configuration.ServiceProvider.GetService <IViewCompiler>();
                compilation = compiler.CreateCompilation(Options.AssemblyName);
            }
        }
        private void Init()
        {
            if (Options.FullCompile)
            {
                // touch assembly
                SyntaxFactory.Token(SyntaxKind.NullKeyword);
                InitOptions();

                if (!Directory.Exists(Options.OutputPath))
                {
                    Directory.CreateDirectory(Options.OutputPath);
                }
            }

            var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFile(Options.WebSiteAssembly));

            AssemblyResolver.LoadReferences(wsa);


            configuration = GetCachedConfiguration(wsa, Options.WebSitePath,
                                                   (services) =>
            {
                if (Options.FullCompile)
                {
                    services.AddSingleton <IBindingCompiler>(s => bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), s.GetRequiredService <DotvvmConfiguration>()));
                }
            });

            if (Options.DothtmlFiles == null || !Options.DothtmlFiles.Any())
            {
                Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray();
            }

            if (Options.FullCompile)
            {
                controlTreeResolver = configuration.ServiceProvider.GetRequiredService <IControlTreeResolver>();
                fileLoader          = configuration.ServiceProvider.GetRequiredService <IMarkupFileLoader>();
                compiler            = configuration.ServiceProvider.GetRequiredService <IViewCompiler>();
                compilation         = compiler.CreateCompilation(Options.AssemblyName);
            }

            if (Options.SerializeConfig)
            {
                result.Configuration = configuration;
            }
        }
        private void Init()
        {
            // touch assembly
            SyntaxFactory.Token(SyntaxKind.NullKeyword);

            InitOptions();
            if (Options.FullCompile)
            {
                if (!Directory.Exists(Options.OutputPath))
                {
                    Directory.CreateDirectory(Options.OutputPath);
                }
            }
            var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFrom(Options.WebSiteAssembly));

            configuration   = GetCachedConfiguration(wsa, Options.WebSitePath);
            bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), configuration);
            configuration.ServiceLocator.RegisterSingleton <IBindingCompiler>(() => bindingCompiler);
            configuration.ServiceLocator.RegisterSingleton <IControlResolver>(() => new OfflineCompilationControlResolver(configuration, this));
            if (Options.DothtmlFiles == null)
            {
                Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray();
            }
            controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>();
            fileLoader          = configuration.ServiceLocator.GetService <IMarkupFileLoader>();
            if (Options.FullCompile)
            {
                compiler    = configuration.ServiceLocator.GetService <IViewCompiler>();
                compilation = compiler.CreateCompilation(Options.AssemblyName);
            }

            if (Options.SerializeConfig)
            {
                result.Configuration = configuration;
            }

            // touch assemblies
        }
Exemple #8
0
 public void TestInit()
 {
     configuration = DotvvmTestHelper.CreateConfiguration();
     configuration.Markup.AddCodeControls("cc", typeof(ClassWithInnerElementProperty));
     controlTreeResolver = configuration.ServiceProvider.GetRequiredService <IControlTreeResolver>();
 }
 public IAbstractTreeRoot BuildTreeRoot(IControlTreeResolver controlTreeResolver, IControlResolverMetadata metadata, DothtmlRootNode node, IDataContextStack dataContext, IReadOnlyDictionary <string, IReadOnlyList <IAbstractDirective> > directives)
 {
     return(new ResolvedTreeRoot((ControlResolverMetadata)metadata, node, (DataContextStack)dataContext, directives));
 }
 public void TestInit()
 {
     configuration = DotvvmConfiguration.CreateDefault();
     controlTreeResolver = configuration.ServiceLocator.GetService<IControlTreeResolver>();
 }
 public void TestInit()
 {
     configuration       = DotvvmConfiguration.CreateDefault();
     controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>();
 }
Exemple #12
0
 public void TestInit()
 {
     configuration = DotvvmConfiguration.CreateDefault();
     configuration.Markup.AddCodeControls("cc", typeof(ClassWithInnerElementProperty));
     controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>();
 }
Exemple #13
0
 public IAbstractTreeRoot BuildTreeRoot(IControlTreeResolver controlTreeResolver, IControlResolverMetadata metadata, DothtmlRootNode node, IDataContextStack dataContext)
 {
     return new ResolvedTreeRoot((ControlResolverMetadata)metadata, node, (DataContextStack)dataContext);
 }