public void ConfigureDbContext(IServiceCollection services, string connectionString) { string customersConnectionString = connectionString.Replace( "eform-angular-installationchecking-plugin", "eform-angular-basecustomer-plugin"); services.AddDbContext <InstallationCheckingPnDbContext>(o => o.UseMySql(connectionString, new MariaDbServerVersion( new Version(10, 4, 0)), mySqlOptionsAction: builder => { builder.EnableRetryOnFailure(); builder.MigrationsAssembly(PluginAssembly().FullName); })); services.AddDbContext <CustomersPnDbAnySql>(o => o.UseMySql(connectionString, new MariaDbServerVersion( new Version(10, 4, 0)), mySqlOptionsAction: builder => { builder.EnableRetryOnFailure(); builder.MigrationsAssembly(PluginAssembly().FullName); })); InstallationCheckingPnContextFactory contextFactory = new InstallationCheckingPnContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); context.Database.Migrate(); // Seed database SeedDatabase(connectionString); }
public PluginPermissionsManager GetPermissionsManager(string connectionString) { var contextFactory = new InstallationCheckingPnContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); return(new PluginPermissionsManager(context)); }
private void GetContext(string connectionStr) { InstallationCheckingPnContextFactory contextFactory = new InstallationCheckingPnContextFactory(); DbContext = contextFactory.CreateDbContext(new[] { connectionStr }); DbContext.Database.Migrate(); DbContext.Database.EnsureCreated(); }
public void SeedDatabase(string connectionString) { var contextFactory = new InstallationCheckingPnContextFactory(); using (var context = contextFactory.CreateDbContext(new [] { connectionString })) { InstallationCheckingPluginSeed.SeedData(context); } }
public void AddPluginConfig(IConfigurationBuilder builder, string connectionString) { var seedData = new InstallationCheckingConfigurationSeedData(); var contextFactory = new InstallationCheckingPnContextFactory(); builder.AddPluginConfiguration( connectionString, seedData, contextFactory); }
public bool Start(string sdkConnectionString, string serviceLocation) { Console.WriteLine("ServiceInstallationCheckingPlugin 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-installationchecking-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"); } InstallationCheckingPnContextFactory contextFactory = new InstallationCheckingPnContextFactory(); _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 <InstallationCheckingPnDbContext>().Instance(_dbContext)); _container.Register(Component.For <eFormCore.Core>().Instance(_sdkCore)); _container.Install( new RebusHandlerInstaller() , new RebusInstaller(connectionString, MaxParallelism, NumberOfWorkers) ); _container.Register(Component.For <Job>()); _bus = _container.Resolve <IBus>(); ConfigureScheduler(); } Console.WriteLine("ServiceInstallationCheckingPlugin started"); return(true); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Start failed " + ex.Message); throw; } }