void bgwConnectionChanged_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            this.metadataProvider = ((object[])e.Result)[0] as IDatabaseMetadataProvider;
            if (this.metadataProvider != null)
            {
                ConfigurationContent.Content = null;
                CommonDbInitializationHelper.InitializeTargetTable(this.metadataProvider, ddTargetTables, configuration.TargetTable);
            }

            Exception error = ((object[])e.Result)[0] as Exception;

            if (error != null)
            {
                string message = error.Message + ((error.InnerException != null) ? "\n" + error.InnerException.Message : "");
                ConfigurationContent.Content = new MessageControl("An error occured:", message);
            }
        }
        public async void ConnectionChanged(IConnection connection)
        {
            this.connection = connection;
            ConfigurationContent.Content = new LoadingControl();
            ddTargetTables.IsEnabled     = false;

            try
            {
                await Task.Run(() => {
                    metadataProvider = LoadMetadata();
                });

                ConfigurationContent.Content = null;
                CommonDbInitializationHelper.InitializeTargetTable(metadataProvider, ddTargetTables, configuration.TargetTable);
                ddTargetTables.IsEnabled = true;
            }
            catch (Exception ex)
            {
                ConfigurationContent.Content = new MessageControl("An error occured:", ex.ToString());
            }
        }