Example #1
0
        /// <summary>
        /// Runs the database connection tests asynchronously.
        /// </summary>
        public async void ConnectionTestsRunAsync()
        {
            this.databaseConnectionTestException = null;
            try
            {
                this.databaseConnectionTestList = this.configurationTestRunner.GetDatabaseConnectionTestList();
            }
            catch (Exception ex)
            {
                this.databaseConnectionTestException = ex;
                return;
            }

            this.progressBar.Maximum = 100;
            this.progressBar.Value   = 0;

            this.databaseConnectionTestData = DatabaseConnectionTestDetails.ConvertToDataSet(
                this.databaseConnectionTestList);
            this.connectionTestBindingSource.DataSource = this.databaseConnectionTestData;

            IProgress <DatabaseConnectionTestProgressInfo> progress =
                new Progress <DatabaseConnectionTestProgressInfo>(
                    (connectionTestProgressInfo) =>
                    this.UpdateConnectionTestResult(connectionTestProgressInfo));

            this.cancellationTokenSource = new CancellationTokenSource();

            await configurationTestRunner.DatabaseConnectionTestsRunAsync(
                new DatabaseConnectionTestRunner(this.databaseConnectionCheckerFactory),
                cancellationTokenSource.Token,
                progress);
        }
        /// <summary>
        /// Converts a list of DatabaseConnectionTestDetails into a striongly typed DataSet.
        /// </summary>
        /// <param name="connectionTestList">The list of DatabaseConnectionTestDetails to convert</param>
        /// <returns>A strongly typed DataSet containing data from the DatabaseConnectionTestDetails</returns>
        public static DatabaseConnectionTestDetailsDataSet ConvertToDataSet(
            IList <DatabaseConnectionTestDetails> connectionTestList)
        {
            DatabaseConnectionTestDetailsDataSet dataSet = new DatabaseConnectionTestDetailsDataSet();
            var ordinalIndex = 1;

            foreach (DatabaseConnectionTestDetails connectionTest in connectionTestList)
            {
                string source = connectionTest.connectionStringSettings.ElementInformation.Source;
                dataSet.DatabaseConnectionTestDetails.AddDatabaseConnectionTestDetailsRow(
                    connectionTest.ConnectionName, ordinalIndex++, connectionTest.ConnectionString,
                    connectionTest.ProviderName, connectionTest.WasTestRun, connectionTest.WasTestSuccessful,
                    connectionTest.connectionErrorText, connectionTest.TestStatusDescription,
                    source);
            }
            return(dataSet);
        }