/// <summary> /// Initializes a new instance of the <see cref="DbAccessProvider" /> class. /// </summary> /// <param name="dbAccessProviders"> /// The db access providers. /// </param> /// <param name="serviceLocator"> /// The service locator. /// </param> public DbAccessProvider(IIndex <string, IDbAccess> dbAccessProviders, IServiceLocator serviceLocator) { this._dbAccessProviders = dbAccessProviders; this._serviceLocator = serviceLocator; this._dbAccessSafe = new SafeReadWriteProvider <IDbAccess>( () => { IDbAccess dbAccess; // attempt to get the provider... if (this._dbAccessProviders.TryGetValue(this.ProviderName, out dbAccess)) { // first time... this._serviceLocator.Get <IRaiseEvent>() .Raise(new InitDatabaseProviderEvent(this.ProviderName, dbAccess)); } else { throw new NoValidDbAccessProviderFoundException( @"Unable to Locate Provider Named ""{0}"" in Data Access Providers (DLL Not Located in Bin Directory?)." .FormatWith(this.ProviderName)); } return(dbAccess); }); }
/// <summary> /// Initializes a new instance of the <see cref="DbAccessProvider" /> class. /// </summary> /// <param name="dbAccessProviders"> /// The db access providers. /// </param> /// <param name="serviceLocator"> /// The service locator. /// </param> public DbAccessProvider(IIndex<string, IDbAccess> dbAccessProviders, IServiceLocator serviceLocator) { this._dbAccessProviders = dbAccessProviders; this._serviceLocator = serviceLocator; this._providerName = Config.ConnectionProviderName; this._dbAccessSafe = new SafeReadWriteProvider<IDbAccess>( () => { IDbAccess dbAccess; // attempt to get the provider... if (this._dbAccessProviders.TryGetValue(this.ProviderName, out dbAccess)) { // first time... this._serviceLocator.Get<IRaiseEvent>().Raise(new InitDatabaseProviderEvent(this.ProviderName, dbAccess)); } else { throw new NoValidDbAccessProviderFoundException( @"Unable to Locate Provider Named ""{0}"" in Data Access Providers (DLL Not Located in Bin Directory?).".FormatWith( this.ProviderName)); } return dbAccess; }); }