public IConnectionString Get(EDbType dbType)
        {
            if (_connectionStrings.ContainsKey(dbType.ToString()))
            {
                return _connectionStrings[dbType.ToString()].ConnectionString;
            }

            throw new ConnectionStringRegistryException(
                string.Format("ConnectionString for database type [{0}] not found", dbType.ToString()));
        }
 internal void SetConnectionString(EDbType dbType, string dataSource, string user, string password)
 {
     if (!ConnectionStringRegistry.Instance().HasDbType(dbType))
     {
         IConnectionString oraConnect;
         if (_connectionStringsLoaded.ContainsKey(dataSource))
         {
             oraConnect = _connectionStringsLoaded[dataSource];
         }
         else
         {
             oraConnect = new OracleConnectionString(dataSource, user, password) {ConnectionPooling = true};
         }
         ConnectionStringRegistry.Instance().Add(dbType, oraConnect);
     }
 }
        public bool SwitchDb(SwitchDbExcuteFun fun, EDbType e)
        {
            try
            {
                this._context.Database.Connection.ConnectionString =
                    e == EDbType.UpdateDb ? DbHelperSql.DefaultUpdateConn : DbHelperSql.DefaultQueryConn;
                fun();
            }
            catch (Exception dbEx)
            {
                var fail = new Exception("SwitchDb:" + dbEx.Message, dbEx);
                throw fail;
            }
            finally
            {
                this._context.Database.Connection.ConnectionString =
                    e == EDbType.UpdateDb ? DbHelperSql.DefaultQueryConn : DbHelperSql.DefaultUpdateConn;
            }

            return(true);
        }
Exemple #4
0
            public DbCommandEx(IDbCommand command)
            {
                _Command = command;

                if (command is MySqlCommand)
                {
                    _Type = EDbType.MySql;
                }
                else if (command is SqlCommand)
                {
                    _Type = EDbType.SqlServer;
                }
                else if (command is OleDbCommand)
                {
                    _Type = EDbType.OleDb;
                }
                else if (command is OdbcCommand)
                {
                    _Type = EDbType.Odbc;
                }
                //else if (command is OracleCommand) _Type = EDbType.Oracle;
            }
Exemple #5
0
        internal string GetDatabaseId(EDbType databaseType, EDatabaseMode databaseMode)
        {
            string found = null;

            foreach (var dbType in this)
            {
                foreach (var database in dbType.Databases)
                {
                    if (dbType.DbType == databaseType && database.DbMode == databaseMode)
                    {
                        found = database.Id;
                        break;
                    }
                }

                if (found != null)
                {
                    break;
                }
            }

            return(found);
        }
        public void Configure()
        {
            bool connectionStringFromCmdLineExists = false;
            bool connectionStringFromXmlFileExists = false;

            if (!string.IsNullOrEmpty(_user) &&
                !string.IsNullOrEmpty(_password))
            {
                connectionStringFromCmdLineExists = true;
            }

            var loader = new ConnectionStringLoader();
            var connectionStrings = loader.Load();
            if (connectionStrings != null &&
                connectionStrings.Count > 0)
            {
                connectionStringFromXmlFileExists = true;
            }

            OracleConnectionString connectString;

            if (connectionStringFromCmdLineExists)
            {
                connectString = new OracleConnectionString(_dataSource, _user, _password);
            }
            else if (connectionStringFromXmlFileExists)
            {
                connectString = connectionStrings[_dataSource] as OracleConnectionString;

                Debug.Assert(connectString != null, "connectString != null");
                if (connectString.HasProxyUserAndPassword)
                {
                    connectString.User = WindowsIdentity.GetCurrent().NameWithoutDomain();
                    connectString.Password = null;
                }
                Debug.Assert(connectString != null, "ConnectionString not of type OracleConnectionString?");
            }
            else
            {
                throw new ConnectionStringRegistryException(
                    "No Database ConnectionString configuration found. Please use command-line or xml-config.");
            }

            if (DbType == EDbType.Unkown && DbMode == EDatabaseMode.Unkown)
            {
                var databaseTypesLoader = new DatabaseTypesLoader();
                var dbTypes = databaseTypesLoader.Load();
                DbType = dbTypes.GetDbType(_dataSource);
                DbMode = dbTypes.GetDbMode(_dataSource);
            }

            if (DbType == EDbType.Unkown)
                throw new ConnectionStringRegistryException(string.Format("Unkown database type [{0}]", _dataSource));
            if (DbMode == EDatabaseMode.Unkown)
                throw new ConnectionStringRegistryException(string.Format("Unkown database mode [{0}]", _dataSource));

            connectString.ConnectionPooling = true;
            ConnectionStringRegistry.Instance().DatabaseMode = DbMode;
            ConnectionStringRegistry.Instance().Add(DbType, connectString);
        }
Exemple #7
0
        public void Configure()
        {
            bool connectionStringFromCmdLineExists = false;
            bool connectionStringFromXmlFileExists = false;

            if (!string.IsNullOrEmpty(_user) &&
                !string.IsNullOrEmpty(_password))
            {
                connectionStringFromCmdLineExists = true;
            }

            var loader            = new ConnectionStringLoader();
            var connectionStrings = loader.Load();

            if (connectionStrings != null &&
                connectionStrings.Count > 0)
            {
                connectionStringFromXmlFileExists = true;
            }

            OracleConnectionString connectString;

            if (connectionStringFromCmdLineExists)
            {
                connectString = new OracleConnectionString(_dataSource, _user, _password);
            }
            else if (connectionStringFromXmlFileExists)
            {
                connectString = connectionStrings[_dataSource] as OracleConnectionString;

                Debug.Assert(connectString != null, "connectString != null");
                if (connectString.HasProxyUserAndPassword)
                {
                    connectString.User     = WindowsIdentity.GetCurrent().NameWithoutDomain();
                    connectString.Password = null;
                }
                Debug.Assert(connectString != null, "ConnectionString not of type OracleConnectionString?");
            }
            else
            {
                throw new ConnectionStringRegistryException(
                          "No Database ConnectionString configuration found. Please use command-line or xml-config.");
            }

            if (DbType == EDbType.Unkown && DbMode == EDatabaseMode.Unkown)
            {
                var databaseTypesLoader = new DatabaseTypesLoader();
                var dbTypes             = databaseTypesLoader.Load();
                DbType = dbTypes.GetDbType(_dataSource);
                DbMode = dbTypes.GetDbMode(_dataSource);
            }

            if (DbType == EDbType.Unkown)
            {
                throw new ConnectionStringRegistryException(string.Format("Unkown database type [{0}]", _dataSource));
            }
            if (DbMode == EDatabaseMode.Unkown)
            {
                throw new ConnectionStringRegistryException(string.Format("Unkown database mode [{0}]", _dataSource));
            }

            connectString.ConnectionPooling = true;
            ConnectionStringRegistry.Instance().DatabaseMode = DbMode;
            ConnectionStringRegistry.Instance().Add(DbType, connectString);
        }
 public bool HasDbType(EDbType dbType)
 {
     return(_connectionStrings.ContainsKey(dbType.ToString()));
 }
 public void Add(EDbType dbType, IConnectionString connectionString)
 {
     Add(connectionString, dbType, false);
 }
        private void Add(IConnectionString connectionString, EDbType dbType, bool defaultDatabase)
        {
            Debug.Assert(connectionString != null, "connectionString is null");
            Debug.Assert(!_connectionStrings.ContainsKey(dbType.ToString()),
                string.Format("Connection string for [{0}] exists already", dbType.ToString()));

            _connectionStrings.Add(dbType.ToString(), new ConnectionStringEntry(connectionString, defaultDatabase));
        }
 public bool HasDbType(EDbType dbType)
 {
     return _connectionStrings.ContainsKey(dbType.ToString());
 }
 public void Add(EDbType dbType, IConnectionString connectionString)
 {
     Add(connectionString, dbType, false);
 }