private SchedulerCenter GetScheduler(CafConfigurationContext context) { string dbProviderName = context.Configuration.GetSection("Quartz")["dbProviderName"]; //string connectionString = context.Configuration.GetSection("Quartz")["connectionString"]; var connectionString = context.Services.BuildServiceProvider().GetService <IOptions <Caf.Job.Entity.Quartz> >().Value.connectionString; if (string.IsNullOrWhiteSpace(connectionString)) { connectionString = context.Configuration.GetSection("Quartz")["connectionString"]; } string driverDelegateType = string.Empty; switch (dbProviderName) { case "SQLite-Microsoft": case "SQLite": driverDelegateType = typeof(SQLiteDelegate).AssemblyQualifiedName; break; case "MySql": driverDelegateType = typeof(MySQLDelegate).AssemblyQualifiedName; break; case "OracleODPManaged": driverDelegateType = typeof(OracleDelegate).AssemblyQualifiedName; break; case "SqlServer": case "SQLServerMOT": driverDelegateType = typeof(SqlServerDelegate).AssemblyQualifiedName; break; case "Npgsql": driverDelegateType = typeof(PostgreSQLDelegate).AssemblyQualifiedName; break; case "Firebird": driverDelegateType = typeof(FirebirdDelegate).AssemblyQualifiedName; break; default: throw new System.Exception("dbProviderName unreasonable"); } JudgeConfigureConn(context); var dbcontext = context.Services.BuildServiceProvider().GetService <CafJobDbContext>(); SchedulerCenter schedulerCenter = SchedulerCenter.Instance; schedulerCenter.Setting(new DbProvider(dbProviderName, connectionString), driverDelegateType, dbcontext); return(schedulerCenter); }
private SchedulerCenter GetScheduler(IConfiguration configuration) { string dbProviderName = configuration.GetSection("Quartz")["dbProviderName"]; string connectionString = configuration.GetSection("Quartz")["connectionString"]; string driverDelegateType = string.Empty; switch (dbProviderName) { case "SQLite-Microsoft": case "SQLite": driverDelegateType = typeof(SQLiteDelegate).AssemblyQualifiedName; break; case "MySql": driverDelegateType = typeof(MySQLDelegate).AssemblyQualifiedName; break; case "OracleODPManaged": driverDelegateType = typeof(OracleDelegate).AssemblyQualifiedName; break; case "SqlServer": case "SQLServerMOT": driverDelegateType = typeof(SqlServerDelegate).AssemblyQualifiedName; break; case "Npgsql": driverDelegateType = typeof(PostgreSQLDelegate).AssemblyQualifiedName; break; case "Firebird": driverDelegateType = typeof(FirebirdDelegate).AssemblyQualifiedName; break; default: throw new System.Exception("dbProviderName unreasonable"); } SchedulerCenter schedulerCenter = SchedulerCenter.Instance; schedulerCenter.Setting(new DbProvider(dbProviderName, connectionString), driverDelegateType); return(schedulerCenter); }
static SchedulerCenter() { Instance = new SchedulerCenter(); }