@@ -7,36 +7,39 @@ namespace Shuttle.Core.Data
77{
88 public class DatabaseContextFactory : IDatabaseContextFactory
99 {
10+ public IConnectionConfigurationProvider ConfigurationProvider { get ; }
1011 private string _connectionString ;
1112 private string _connectionStringName ;
1213 private IDbConnection _dbConnection ;
1314 private string _providerName ;
1415
15- public DatabaseContextFactory ( IDbConnectionFactory dbConnectionFactory , IDbCommandFactory dbCommandFactory ,
16+ public DatabaseContextFactory ( IConnectionConfigurationProvider connectionConfigurationProvider ,
17+ IDbConnectionFactory dbConnectionFactory , IDbCommandFactory dbCommandFactory ,
1618 IDatabaseContextCache databaseContextCache )
1719 {
20+ Guard . AgainstNull ( connectionConfigurationProvider , nameof ( connectionConfigurationProvider ) ) ;
1821 Guard . AgainstNull ( dbConnectionFactory , nameof ( dbConnectionFactory ) ) ;
1922 Guard . AgainstNull ( dbCommandFactory , nameof ( dbCommandFactory ) ) ;
2023 Guard . AgainstNull ( databaseContextCache , nameof ( databaseContextCache ) ) ;
2124
25+ ConfigurationProvider = connectionConfigurationProvider ;
2226 DbConnectionFactory = dbConnectionFactory ;
2327 DbCommandFactory = dbCommandFactory ;
2428 DatabaseContextCache = databaseContextCache ;
2529
2630 DatabaseContext . Assign ( databaseContextCache ) ;
2731 }
2832
29- public IDatabaseContext Create ( string connectionStringName )
33+ public IDatabaseContext Create ( string name )
3034 {
31- var settings = ConfigurationManager . ConnectionStrings [ connectionStringName ] ;
35+ var configuration = ConfigurationProvider . Get ( name ) ;
3236
33- if ( settings == null )
37+ if ( configuration == null )
3438 {
35- throw new InvalidOperationException ( string . Format ( Resources . ConnectionStringMissing ,
36- connectionStringName ) ) ;
39+ throw new InvalidOperationException ( string . Format ( Resources . ConnectionConfigurationMissing , GetType ( ) . FullName , name ) ) ;
3740 }
3841
39- return Create ( settings . ProviderName , settings . ConnectionString ) ;
42+ return Create ( configuration . ProviderName , configuration . ConnectionString ) ;
4043 }
4144
4245 public IDatabaseContext Create ( string providerName , string connectionString )
@@ -114,7 +117,7 @@ public static IDatabaseContextFactory Default(IDbProviderFactories dbProviderFac
114117 var dbConnectionFactory = new DbConnectionFactory ( dbProviderFactories ) ;
115118#endif
116119
117- return new DatabaseContextFactory ( dbConnectionFactory , new DbCommandFactory ( ) , new ThreadStaticDatabaseContextCache ( ) ) ;
120+ return new DatabaseContextFactory ( new ConnectionConfigurationProvider ( ) , dbConnectionFactory , new DbCommandFactory ( ) , new ThreadStaticDatabaseContextCache ( ) ) ;
118121 }
119122
120123 private void ClearConfiguredValues ( )
0 commit comments