Beispiel #1
0
        /// <summary>
        /// Verifies whether a it is possible to connect to a database.
        /// </summary>
        public bool CanConnect(string databaseType, string connectionString, string server, string database, string login, string password, bool integratedAuth)
        {
            // we do not test SqlCE connection
            if (databaseType.InvariantContains("sqlce"))
            {
                return(true);
            }

            string providerName;

            if (string.IsNullOrWhiteSpace(connectionString) == false)
            {
                providerName = DbConnectionExtensions.DetectProviderNameFromConnectionString(connectionString);
            }
            else if (integratedAuth)
            {
                // has to be Sql Server
                providerName     = Constants.DbProviderNames.SqlServer;
                connectionString = GetIntegratedSecurityDatabaseConnectionString(server, database);
            }
            else
            {
                connectionString = GetDatabaseConnectionString(
                    server, database, login, password,
                    databaseType, out providerName);
            }

            return(DbConnectionExtensions.IsConnectionAvailable(connectionString, providerName));
        }
Beispiel #2
0
        /// <summary>
        /// Verifies whether a it is possible to connect to a database.
        /// </summary>
        public bool CanConnect(string databaseType, string connectionString, string server, string database, string login, string password, bool integratedAuth)
        {
            // we do not test SqlCE or LocalDB connections
            if (databaseType.InvariantContains("SqlCe") || databaseType.InvariantContains("SqlLocalDb"))
            {
                return(true);
            }

            string providerName;

            if (string.IsNullOrWhiteSpace(connectionString) == false)
            {
                providerName = ConfigConnectionString.ParseProviderName(connectionString);
            }
            else if (integratedAuth)
            {
                // has to be Sql Server
                providerName     = Constants.DbProviderNames.SqlServer;
                connectionString = GetIntegratedSecurityDatabaseConnectionString(server, database);
            }
            else
            {
                connectionString = GetDatabaseConnectionString(
                    server, database, login, password,
                    databaseType, out providerName);
            }

            var factory = _dbProviderFactoryCreator.CreateFactory(providerName);

            return(DbConnectionExtensions.IsConnectionAvailable(connectionString, factory));
        }
Beispiel #3
0
        private InstallState GetInstallState()
        {
            var installState = InstallState.Unknown;

            var databaseSettings = ConfigurationManager.ConnectionStrings[Constants.System.UmbracoConnectionName];

            var hasVersion = !_globalSettings.ConfigurationStatus.IsNullOrWhiteSpace();

            if (hasVersion)
            {
                installState = InstallState.HasVersion;
            }

            var hasConnString = databaseSettings != null && _databaseBuilder.IsDatabaseConfigured;

            if (hasConnString)
            {
                installState = (installState | InstallState.HasConnectionString) & ~InstallState.Unknown;
            }

            var connStringConfigured = hasConnString ? _databaseBuilder.IsConnectionStringConfigured(databaseSettings) : false;

            if (connStringConfigured)
            {
                installState = (installState | InstallState.ConnectionStringConfigured) & ~InstallState.Unknown;
            }

            var canConnect = connStringConfigured ? DbConnectionExtensions.IsConnectionAvailable(databaseSettings.ConnectionString, databaseSettings.ProviderName) : false;

            if (canConnect)
            {
                installState = (installState | InstallState.CanConnect) & ~InstallState.Unknown;
            }

            var umbracoInstalled = canConnect ? _databaseBuilder.IsUmbracoInstalled() : false;

            if (umbracoInstalled)
            {
                installState = (installState | InstallState.UmbracoInstalled) & ~InstallState.Unknown;
            }

            var hasNonDefaultUser = umbracoInstalled ? _databaseBuilder.HasSomeNonDefaultUser() : false;

            if (hasNonDefaultUser)
            {
                installState = (installState | InstallState.HasNonDefaultUser) & ~InstallState.Unknown;
            }

            return(installState);
        }
Beispiel #4
0
        private InstallState GetInstallState()
        {
            var installState = InstallState.Unknown;


            // TODO: we need to do a null check here since this could be entirely missing and we end up with a null ref
            // exception in the installer.

            var databaseSettings = _connectionStrings.Get(Constants.System.UmbracoConnectionName);

            var hasConnString = databaseSettings != null && _databaseBuilder.IsDatabaseConfigured;

            if (hasConnString)
            {
                installState = (installState | InstallState.HasConnectionString) & ~InstallState.Unknown;
            }

            var connStringConfigured = databaseSettings?.IsConnectionStringConfigured() ?? false;

            if (connStringConfigured)
            {
                installState = (installState | InstallState.ConnectionStringConfigured) & ~InstallState.Unknown;
            }


            var factory    = _dbProviderFactoryCreator.CreateFactory(databaseSettings?.ProviderName);
            var canConnect = connStringConfigured && DbConnectionExtensions.IsConnectionAvailable(databaseSettings?.ConnectionString, factory);

            if (canConnect)
            {
                installState = (installState | InstallState.CanConnect) & ~InstallState.Unknown;
            }

            var umbracoInstalled = canConnect ? _databaseBuilder.IsUmbracoInstalled() : false;

            if (umbracoInstalled)
            {
                installState = (installState | InstallState.UmbracoInstalled) & ~InstallState.Unknown;
            }

            var hasNonDefaultUser = umbracoInstalled ? _databaseBuilder.HasSomeNonDefaultUser() : false;

            if (hasNonDefaultUser)
            {
                installState = (installState | InstallState.HasNonDefaultUser) & ~InstallState.Unknown;
            }

            return(installState);
        }
        internal bool CheckConnection(DatabaseModel database, ApplicationContext applicationContext)
        {
            string            connectionString;
            DatabaseProviders provider;
            var dbContext = applicationContext.DatabaseContext;

            if (database.ConnectionString.IsNullOrWhiteSpace() == false)
            {
                connectionString = database.ConnectionString;
                provider         = DbConnectionExtensions.DetectProviderFromConnectionString(connectionString);
            }
            else if (database.DatabaseType == DatabaseType.SqlCe)
            {
                //we do not test this connection
                return(true);
                //connectionString = dbContext.GetEmbeddedDatabaseConnectionString();
            }
            else if (database.IntegratedAuth)
            {
                connectionString = dbContext.GetIntegratedSecurityDatabaseConnectionString(
                    database.Server, database.DatabaseName);
                provider = DatabaseProviders.SqlServer;;
            }
            else
            {
                string providerName;
                connectionString = dbContext.GetDatabaseConnectionString(
                    database.Server, database.DatabaseName, database.Login, database.Password,
                    database.DatabaseType.ToString(),
                    out providerName);

                provider = database.DatabaseType == DatabaseType.MySql ? DatabaseProviders.MySql : DatabaseProviders.SqlServer;
            }

            return(DbConnectionExtensions.IsConnectionAvailable(connectionString, provider));
        }
Beispiel #6
0
        /// <summary>
        /// Verifies whether a it is possible to connect to a database.
        /// </summary>
        public bool CanConnect(string connectionString, string providerName)
        {
            DbProviderFactory factory = _dbProviderFactoryCreator.CreateFactory(providerName);

            return(DbConnectionExtensions.IsConnectionAvailable(connectionString, factory));
        }