Esempio n. 1
0
        public ConnectionState GetConnectionState(SqlConnectionString connectionString)
        {
            var connectionStringStr = connectionString?.ToString();

            if (string.IsNullOrWhiteSpace(connectionStringStr))
            {
                return(ConnectionState.Invalid);
            }

            var factory    = DbProviderFactories.GetFactory(connectionString.DbProvider.InvariantName);
            var connection = factory.CreateConnection();

            if (connection == null)
            {
                return(ConnectionState.Invalid);
            }

            // Try to open
            try
            {
                connection.ConnectionString = connectionStringStr;
                connection.Open();
            }
            catch
            {
                return(ConnectionState.Invalid);
            }
            finally
            {
                connection.Dispose();
            }

            return(ConnectionState.Valid);
        }
Esempio n. 2
0
        public IList <string> GetDataSources(SqlConnectionString connectionString)
        {
            var dbProvider = connectionString.DbProvider?.InvariantName;

            if (string.IsNullOrWhiteSpace(dbProvider))
            {
                return(new List <string>());
            }

            _providers.TryGetValue(dbProvider, out var provider);
            return(provider != null?provider.GetDataSources() : new List <string>());
        }
        public IList <string> GetDatabases(SqlConnectionString connectionString)
        {
            var dbProvider = connectionString.DbProvider?.InvariantName;

            if (string.IsNullOrWhiteSpace(dbProvider))
            {
                return(new List <string>());
            }

            IDataSourceProvider provider = null;

            _providers.TryGetValue(dbProvider, out provider);
            if (provider == null)
            {
                return(new List <string>());
            }

            var factory = DbProviderFactories.GetFactory(dbProvider);

            var databases = new List <string>();

            using (var sqlConnection = factory.CreateConnection())
            {
                if (sqlConnection == null)
                {
                    return(new List <string>());
                }

                sqlConnection.ConnectionString = connectionString.ToString();
                sqlConnection.Open();

                using (var command = factory.CreateCommand())
                {
                    if (command == null)
                    {
                        return(new List <string>());
                    }

                    command.Connection  = sqlConnection;
                    command.CommandText = provider.DataBasesQuery;
                    command.CommandType = CommandType.Text;
                    using (IDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            databases.Add(dataReader[0].ToString());
                        }
                    }
                }
            }

            return(databases);
        }
Esempio n. 4
0
        public ConnectionStringAdvancedOptionsViewModel(SqlConnectionString connectionString)
        {
            Argument.IsNotNull(() => connectionString);

            ConnectionString = connectionString;
        }