public static IServiceCollection AddDatabaseModule(this IServiceCollection services, DatabaseConfigurationBuilder databaseConfigurationBuilder) { return(services .AddSingleton(databaseConfigurationBuilder.Build()) .AddScoped <IDatabaseService, DatabaseService>() .AddSingleton <IDatabaseServiceAccessor, DatabaseServiceAccessor>()); }
/// <summary> /// <para>Initializes a new instance of the <see cref="DatabaseProviderFactory"/> class /// with the given configuration accessor.</para> /// </summary> /// <param name="configurationAccessor">The source for configuration information.</param> public DatabaseProviderFactory(Func<string, ConfigurationSection> configurationAccessor) { Guard.ArgumentNotNull(configurationAccessor, "configurationAccessor"); this.builder = new DatabaseConfigurationBuilder(configurationAccessor); }
protected override void OnDatabaseInitializing(DatabaseConfigurationBuilder <FileDatabase> configurator) { configurator.Configure(new DatabaseEncryption(_encryptionService)); configurator.Configure(new NewDatabaseFactory <FileDatabase>()); configurator.Configure(new DataContractDatabaseSerializer <FileDatabase>()); }
/// <summary> /// <para>Initializes a new instance of the <see cref="DatabaseProviderFactory"/> class /// with the given configuration accessor.</para> /// </summary> /// <param name="configurationAccessor">The source for configuration information.</param> public DatabaseProviderFactory(Func <string, ConfigurationSection> configurationAccessor) { Guard.ArgumentNotNull(configurationAccessor, "configurationAccessor"); this.builder = new DatabaseConfigurationBuilder(configurationAccessor); }
public static DatabaseConfigurationBuilder LoadDatabaseConfiguration(this IConfiguration configuration) { /* configuration keys : * - type: [mysql, sqlserver, sqlite] * - user: username * - password: password * - host: host * - database: database name * - encrypt: (bool) encrypt sqlserver connection or not * - connectionString: (only if you want to provide the full connection string for mysql or sqlserver) */ if (!Enum.TryParse(configuration["type"], out DatabaseType databaseType)) { throw new ArgumentException("Missing or unrecognized database type"); } string?connectionString = configuration.GetValue <string?>("connectionString", null); DatabaseConfigurationBuilder configurationBuilder = new DatabaseConfigurationBuilder() .UseDebug(configuration.GetValue("debugLogging", false)) .UseLogService(configuration.GetValue("useLogService", false)); if (connectionString is null) { switch (databaseType) { case DatabaseType.AzureSqlServer: return(configurationBuilder .UseAzureSqlServer( configuration["host"], configuration["database"], configuration["user"], configuration["password"], configuration.GetValue("encrypt", false) )); case DatabaseType.SqlServer: return(configurationBuilder .UseSqlServer( configuration["host"], configuration["database"], configuration["user"], configuration["password"], configuration.GetValue("encrypt", false), configuration.GetValue("integratedSecurity", false) )); case DatabaseType.MySql: return(configurationBuilder .UseMySQL( configuration["host"], configuration["database"], configuration["user"], configuration["password"] )); case DatabaseType.SQLite: return(configurationBuilder .UseSQLite(configuration["file"])); case DatabaseType.SQLiteMemory: return(configurationBuilder .UseInMemorySQLite()); default: throw new ArgumentOutOfRangeException(); } } switch (databaseType) { case DatabaseType.SqlServer: return(configurationBuilder.UseSqlServer(connectionString)); case DatabaseType.MySql: return(configurationBuilder.UseMySQL(connectionString)); case DatabaseType.AzureSqlServer: case DatabaseType.SQLite: case DatabaseType.SQLiteMemory: throw new InvalidOperationException($"Connection string not supported for {nameof(DatabaseType.AzureSqlServer)}, {nameof(DatabaseType.SQLite)}, {nameof(DatabaseType.SQLiteMemory)}"); default: throw new ArgumentOutOfRangeException(); } }