Exemplo n.º 1
0
 private void LoadProviders()
 {
     DataRepository.LoadProviders();
     if (this._providers == null)
     {
         lock (DataRepository.SyncRoot)
         {
             if (this._providers == null)
             {
                 for (int i = 0; i < DataRepository.NetTiersSection.Providers.Count; i++)
                 {
                     DataRepository.NetTiersSection.Providers[i].Parameters["connectionStringName"] = this._connectionStringName;
                     DataRepository.NetTiersSection.Providers[i].Parameters.Remove("connectionString");
                     if (!string.IsNullOrEmpty(this._connectionString))
                     {
                         DataRepository.NetTiersSection.Providers[i].Parameters["connectionString"] = this._connectionString;
                     }
                 }
                 this._providers = new NetTiersProviderCollection();
                 ProvidersHelper.InstantiateProviders(DataRepository.NetTiersSection.Providers, this._providers, typeof(NetTiersProvider));
                 this._provider = this._providers[DataRepository.NetTiersSection.DefaultProvider];
             }
         }
     }
 }
Exemplo n.º 2
0
            /// <summary>
            /// Instantiates the configured providers based on the supplied connection string.
            /// </summary>
            private void LoadProviders()
            {
                DataRepository.LoadProviders();

                // Avoid claiming lock if providers are already loaded
                if (_providers == null)
                {
                    lock ( SyncRoot )
                    {
                        // Do this again to make sure _provider is still null
                        if (_providers == null)
                        {
                            // apply connection information to each provider
                            for (int i = 0; i < NetTiersSection.Providers.Count; i++)
                            {
                                NetTiersSection.Providers[i].Parameters["connectionStringName"] = _connectionStringName;
                                // remove previous connection string, if any
                                NetTiersSection.Providers[i].Parameters.Remove("connectionString");

                                if (!String.IsNullOrEmpty(_connectionString))
                                {
                                    NetTiersSection.Providers[i].Parameters["connectionString"] = _connectionString;
                                }
                            }

                            // Load registered providers and point _provider to the default provider
                            _providers = new NetTiersProviderCollection();

                            ProvidersHelper.InstantiateProviders(NetTiersSection.Providers, _providers, typeof(NetTiersProvider));
                            _provider = _providers[NetTiersSection.DefaultProvider];
                        }
                    }
                }
            }
Exemplo n.º 3
0
 private static void LoadProviders()
 {
     if (_provider == null)
     {
         lock (SyncRoot)
         {
             if (_provider == null)
             {
                 _providers = new NetTiersProviderCollection();
                 ProvidersHelper.InstantiateProviders(NetTiersSection.Providers, _providers, typeof(NetTiersProvider));
                 _provider = _providers[NetTiersSection.DefaultProvider];
                 if (_provider == null)
                 {
                     throw new ProviderException("Unable to load default NetTiersProvider");
                 }
             }
         }
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Enables the DataRepository to programatically create and
        /// pass in a <c>NetTiersProvider</c> during runtime.
        /// </summary>
        /// <param name="provider">An instatiated NetTiersProvider.</param>
        /// <param name="setAsDefault">ability to set any valid provider as the default provider for the DataRepository.</param>
        public static void LoadProvider(NetTiersProvider provider, bool setAsDefault)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (_providers == null)
            {
                lock (SyncRoot)
                {
                    if (_providers == null)
                    {
                        _providers = new NetTiersProviderCollection();
                    }
                }
            }

            if (_providers[provider.Name] == null)
            {
                lock (_providers.SyncRoot)
                {
                    _providers.Add(provider);
                }
            }

            if (_provider == null || setAsDefault)
            {
                lock (SyncRoot)
                {
                    if (_provider == null || setAsDefault)
                    {
                        _provider = provider;
                    }
                }
            }
        }
Exemplo n.º 5
0
        ///<summary>
        /// Configuration based provider loading, will load the providers on first call.
        ///</summary>
        private static void LoadProviders()
        {
            // Avoid claiming lock if providers are already loaded
            if (_provider == null)
            {
                lock (SyncRoot)
                {
                    // Do this again to make sure _provider is still null
                    if (_provider == null)
                    {
                        // Load registered providers and point _provider to the default provider
                        _providers = new NetTiersProviderCollection();

                        ProvidersHelper.InstantiateProviders(NetTiersSection.Providers, _providers, typeof(NetTiersProvider));
                        _provider = _providers[NetTiersSection.DefaultProvider];

                        if (_provider == null)
                        {
                            throw new ProviderException("Unable to load default NetTiersProvider");
                        }
                    }
                }
            }
        }