Beispiel #1
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);
        }
Beispiel #2
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));
        }