public PluginPermissionsManager GetPermissionsManager(string connectionString) { var contextFactory = new EformMonitoringPnDbContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); return(new PluginPermissionsManager(context)); }
public void SeedDatabase(string connectionString) { var contextFactory = new EformMonitoringPnDbContextFactory(); using (var context = contextFactory.CreateDbContext(new [] { connectionString })) { MonitoringPluginSeed.SeedData(context); } }
private void GetContext(string connectionStr) { EformMonitoringPnDbContextFactory contextFactory = new EformMonitoringPnDbContextFactory(); DbContext = contextFactory.CreateDbContext(new[] { connectionStr }); DbContext.Database.Migrate(); DbContext.Database.EnsureCreated(); }
public void ConfigureDbContext(IServiceCollection services, string connectionString) { services.AddDbContext <EformMonitoringPnDbContext>(o => o.UseMySql(connectionString, new MariaDbServerVersion( new Version(10, 4, 0)), mySqlOptionsAction: builder => { builder.EnableRetryOnFailure(); builder.MigrationsAssembly(PluginAssembly().FullName); })); var contextFactory = new EformMonitoringPnDbContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); context.Database.Migrate(); // Seed database SeedDatabase(connectionString); }
public void ConfigureDbContext(IServiceCollection services, string connectionString) { if (connectionString.ToLower().Contains("convert zero datetime")) { services.AddDbContext <EformMonitoringPnDbContext>(o => o.UseMySql(connectionString, b => b.MigrationsAssembly(PluginAssembly().FullName))); } else { services.AddDbContext <EformMonitoringPnDbContext>(o => o.UseSqlServer(connectionString, b => b.MigrationsAssembly(PluginAssembly().FullName))); } var contextFactory = new EformMonitoringPnDbContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); context.Database.Migrate(); // Seed database SeedDatabase(connectionString); }
public bool Start(string sdkConnectionString, string serviceLocation) { Console.WriteLine("ServiceMonitoringPlugin start called"); try { string dbNameSection; string dbPrefix; if (sdkConnectionString.ToLower().Contains("convert zero datetime")) { dbNameSection = Regex.Match(sdkConnectionString, @"(Database=\w*;)").Groups[0].Value; dbPrefix = Regex.Match(sdkConnectionString, @"Database=(\d*)_").Groups[1].Value; } else { dbNameSection = Regex.Match(sdkConnectionString, @"(Initial Catalog=\w*;)").Groups[0].Value; dbPrefix = Regex.Match(sdkConnectionString, @"Initial Catalog=(\d*)_").Groups[1].Value; } var pluginDbName = $"Initial Catalog={dbPrefix}_eform-angular-monitoring-plugin;"; var connectionString = sdkConnectionString.Replace(dbNameSection, pluginDbName); if (!_coreAvailable && !_coreStatChanging) { _serviceLocation = serviceLocation; _coreStatChanging = true; if (string.IsNullOrEmpty(_serviceLocation)) { throw new ArgumentException("serviceLocation is not allowed to be null or empty"); } if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException("serverConnectionString is not allowed to be null or empty"); } EformMonitoringPnDbContextFactory contextFactory = new EformMonitoringPnDbContextFactory(); _dbContext = contextFactory.CreateDbContext(new[] { connectionString }); _dbContext.Database.Migrate(); _coreAvailable = true; _coreStatChanging = false; StartSdkCoreSqlOnly(sdkConnectionString); _container = new WindsorContainer(); _container.Register(Component.For <IWindsorContainer>().Instance(_container)); _container.Register(Component.For <EformMonitoringPnDbContext>().Instance(_dbContext)); _container.Register(Component.For <eFormCore.Core>().Instance(_sdkCore)); _container.Install( new RebusHandlerInstaller() , new RebusInstaller(connectionString, MaxParallelism, NumberOfWorkers) ); _bus = _container.Resolve <IBus>(); } Console.WriteLine("ServiceMonitoringPlugin started"); return(true); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Start failed " + ex.Message); throw; } }