public virtual List <MetadataReference> GetReferences() { var provider = new MetadataReferencesProvider(); NamedReferences.ForEach(name => provider.AddReferenceFromName(name)); References.ForEach(r => provider.Add(r)); return(provider.GetApplicationReferences()); }
public RazorTemplating([NotNull] ICompilationService compilationService, [NotNull] MetadataReferencesProvider metadataReferencesProvider) { Check.NotNull(compilationService, nameof(compilationService)); Check.NotNull(metadataReferencesProvider, nameof(metadataReferencesProvider)); _compilationService = compilationService; _metadataReferencesProvider = metadataReferencesProvider; }
public RazorTemplating( [NotNull] ICompilationService compilationService, [NotNull] MetadataReferencesProvider metadataReferencesProvider, [NotNull] ModelUtilities modelUtilities, [NotNull] CSharpUtilities csharpUtiliies) { Check.NotNull(compilationService, nameof(compilationService)); Check.NotNull(metadataReferencesProvider, nameof(metadataReferencesProvider)); Check.NotNull(modelUtilities, nameof(modelUtilities)); Check.NotNull(csharpUtiliies, nameof(csharpUtiliies)); _compilationService = compilationService; _metadataReferencesProvider = metadataReferencesProvider; _modelUtilities = modelUtilities; _csharpUtiliies = csharpUtiliies; }
private ServiceProvider SetupServiceProvider() { #if DNX451 || DNXCORE50 // provides ILibraryManager etc services var serviceProvider = new ServiceProvider( CallContextServiceLocator.Locator.ServiceProvider); #else var serviceProvider = new ServiceProvider(null); #endif serviceProvider.AddService(typeof(CSharpCodeGeneratorHelper), new CSharpCodeGeneratorHelper()); serviceProvider.AddService(typeof(ModelUtilities), new ModelUtilities()); var metadataReferencesProvider = new MetadataReferencesProvider(serviceProvider); serviceProvider.AddService(typeof(MetadataReferencesProvider), metadataReferencesProvider); var compilationService = new RoslynCompilationService(); serviceProvider.AddService(typeof(ITemplating), new RazorTemplating(compilationService, metadataReferencesProvider)); return(serviceProvider); }
private List <MetadataReference> SetupMetadataReferencesForCompilationOfGeneratedCode( MetadataReferencesProvider metadataReferencesProvider) { metadataReferencesProvider.AddReferenceFromName("EntityFramework.Core"); metadataReferencesProvider.AddReferenceFromName("EntityFramework.Relational"); metadataReferencesProvider.AddReferenceFromName("EntityFramework.SqlServer"); #if DNXCORE50 || NETCORE50 metadataReferencesProvider.AddReferenceFromName("System.Data.Common"); metadataReferencesProvider.AddReferenceFromName("System.Linq.Expressions"); metadataReferencesProvider.AddReferenceFromName("System.Reflection"); return(metadataReferencesProvider.GetApplicationReferences()); #else var metadataReferences = metadataReferencesProvider.GetApplicationReferences(); metadataReferences.Add(MetadataReference.CreateFromFile( Assembly.Load(new AssemblyName( "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")).Location)); return(metadataReferences); #endif }
public DatabaseTool( [CanBeNull] IServiceProvider serviceProvider, [NotNull] ILoggerProvider loggerProvider) { Check.NotNull(loggerProvider, nameof(loggerProvider)); _serviceProvider = new ServiceProvider(serviceProvider); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); _logger = new LazyRef <ILogger>(() => loggerFactory.CreateLogger <DatabaseTool>()); _serviceProvider.AddService(typeof(ILogger), _logger.Value); _serviceProvider.AddService(typeof(IFileService), new FileSystemFileService()); _serviceProvider.AddService(typeof(CSharpCodeGeneratorHelper), new CSharpCodeGeneratorHelper()); _serviceProvider.AddService(typeof(ModelUtilities), new ModelUtilities()); var metadataReferencesProvider = new MetadataReferencesProvider(_serviceProvider); _serviceProvider.AddService(typeof(MetadataReferencesProvider), metadataReferencesProvider); var compilationService = new RoslynCompilationService(); _serviceProvider.AddService(typeof(ITemplating), new RazorTemplating(compilationService, metadataReferencesProvider)); }
public virtual void AddReferencesForTemplates(MetadataReferencesProvider metadataReferencesProvider) { metadataReferencesProvider.AddReferenceFromName("EntityFramework.SqlServer.Design"); }
public virtual void AddReferencesForTemplates(MetadataReferencesProvider metadataReferencesProvider) { }
public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add <App>("app"); var fieldsProcessorMetadataReferencesProvider = new MetadataReferencesProvider(); builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); builder.Services.AddSingleton <JsInterop>(serviceProvider => new JsInterop(serviceProvider.GetService <IJSRuntime>())); builder.Services.AddSingleton <TraceListener>(serviceProvider => new TraceListener(";membuf=1")); builder.Services.AddSingleton <ModelObjects>(serviceProvider => { ISynchronizationContext invokingSynchronization = new BlazorSynchronizationContext(); WebContentConfig webContentConfig = new WebContentConfig(); var logMediaFileSystem = new LogJoint.Wasm.LogMediaFileSystem(serviceProvider.GetService <IJSRuntime>()); var model = ModelFactory.Create( new ModelConfig { WorkspacesUrl = "", TelemetryUrl = "", IssuesUrl = "", AutoUpdateUrl = "", PluginsUrl = "", WebContentCacheConfig = webContentConfig, LogsDownloaderConfig = webContentConfig, TraceListeners = new[] { serviceProvider.GetService <TraceListener>() }, RemoveDefaultTraceListener = true, // it's expensive in wasm FormatsRepositoryAssembly = System.Reflection.Assembly.GetExecutingAssembly(), FileSystem = logMediaFileSystem, FieldsProcessorMetadataReferencesProvider = fieldsProcessorMetadataReferencesProvider, FieldsProcessorAssemblyLoader = new AssemblyLoader(), PersistenceFileSystem = new LogJoint.Wasm.PersistenceFileSystem((IJSInProcessRuntime)serviceProvider.GetService <IJSRuntime>()), }, invokingSynchronization, (storageManager) => null /*new PreprocessingCredentialsCache ( * mainWindow.Window, * storageManager.GlobalSettingsEntry, * invokingSynchronization * )*/, (shutdown, webContentCache, traceSourceFactory) => null /*new Presenters.WebViewTools.Presenter ( * new WebBrowserDownloaderWindowController (), * invokingSynchronization, * webContentCache, * shutdown, * traceSourceFactory * )*/, null /*new Drawing.Matrix.Factory()*/, LogJoint.RegularExpressions.FCLRegexFactory.Instance ); logMediaFileSystem.Init(model.TraceSourceFactory); model.GlobalSettingsAccessor.FileSizes = new Settings.FileSizes() { Threshold = 1, WindowSize = 1 }; return(model); }); builder.Services.AddSingleton <ViewModelObjects>(serviceProvider => { var model = serviceProvider.GetService <ModelObjects>(); var jsRuntime = serviceProvider.GetService <IJSRuntime>(); var viewModel = new ViewModelObjects(); var mocks = new Mocks(viewModel); mocks.ShellOpen.When(s => s.OpenInTextEditor(Arg.Any <string>())).Do(x => { serviceProvider.GetService <JsInterop>().SaveAs.SaveAs(File.ReadAllText(x.Arg <string>()), x.Arg <string>()); }); var presentationObjects = LogJoint.UI.Presenters.Factory.Create( model, new Clipboard(jsRuntime), mocks.ShellOpen, /*alertPopup=*/ null, mocks.FileDialogs, mocks.PromptDialog, mocks.AboutConfig, mocks.DragDropHandler, mocks.SystemThemeDetector, mocks.Views ); viewModel.PresentationObjects = presentationObjects; return(viewModel); }); builder.Services.AddSingleton <TreeStyles>(); var wasmHost = builder.Build(); var jsInterop = wasmHost.Services.GetService <JsInterop>(); await jsInterop.Init(); var jsRuntime = wasmHost.Services.GetService <IJSRuntime>(); await fieldsProcessorMetadataReferencesProvider.Init(jsRuntime); { var pluginsDirsList = new List <string>(); var pluginsDir = Path.Combine(Path.GetTempPath(), "plugins"); // folder in memory, powered by emscripten MEMFS. var resourcesAssembly = Assembly.GetExecutingAssembly(); foreach (string resourceName in resourcesAssembly.GetManifestResourceNames().Where(f => f.StartsWith("LogJoint.Wasm.Plugins"))) { var resourceStream = resourcesAssembly.GetManifestResourceStream(resourceName); var pluginDir = Path.Combine(pluginsDir, resourceName); var sw = System.Diagnostics.Stopwatch.StartNew(); using (var archive = new ZipArchive(resourceStream, ZipArchiveMode.Read, leaveOpen: true)) { var createdDirectories = new HashSet <string>(); void ensureDirectoryCreated(string dir) { if (createdDirectories.Add(dir)) { Directory.CreateDirectory(dir); } }; foreach (var e in archive.Entries) { var fileName = Path.Combine(pluginDir, e.FullName); ensureDirectoryCreated(Path.GetDirectoryName(fileName)); using (var sourceStream = e.Open()) using (var targetStream = File.OpenWrite(fileName)) { sourceStream.CopyTo(targetStream); } } } Console.WriteLine("Extracted plugin: {0}, took {1}", resourceName, sw.Elapsed); pluginsDirsList.Add(pluginDir); } var model = wasmHost.Services.GetService <ModelObjects>(); var view = wasmHost.Services.GetService <ViewModelObjects>(); model.PluginsManager.LoadPlugins(new Extensibility.Application( model.ExpensibilityEntryPoint, view.PresentationObjects.ExpensibilityEntryPoint), string.Join(',', pluginsDirsList), false); } await wasmHost.RunAsync(); }