private void Run(DatabaseUpdateOperation type) { // check... if (_thread != null) { throw new InvalidOperationException("A database update operation is already running."); } // create... ConnectionSettings settings = Database.DefaultConnectionSettings; if (settings == null) { throw new InvalidOperationException("settings is null."); } // create... _thread = new ThreadUIHelper(this, this.operation); _thread.ThreadStarted += new EventHandler(_thread_ThreadStarted); _thread.ThreadFinished += new EventHandler(_thread_ThreadFinished); _thread.Failed += new System.Threading.ThreadExceptionEventHandler(_thread_Failed); _thread.RunAsync(this, "RunInternal", type); // reset... this.RefreshButtons(); }
private void RunInternal(DatabaseUpdateOperation type) { DatabaseUpdateUIWorker worker = new DatabaseUpdateUIWorker(Database.DefaultConnectionSettings, type, this.operation); worker.CheckComplete += new DatabaseUpdateCheckResultsEventHandler(worker_CheckComplete); worker.UpdateComplete += new EventHandler(worker_UpdateComplete); worker.DoWork(); }
internal DatabaseUpdateUIWorker(ConnectionSettings settings, DatabaseUpdateOperation type, IOperationItem operation) { if (settings == null) { throw new ArgumentNullException("settings"); } // set... _settings = settings; _type = type; _operation = operation; }