static void BackupComplete(IAsyncResult ar) { System.Runtime.Remoting.Messaging.AsyncResult iar = (System.Runtime.Remoting.Messaging.AsyncResult)ar; delDatabaseBackup state = (delDatabaseBackup)iar.AsyncDelegate; bDatabaseBackup = state.EndInvoke(ar); ar.AsyncWaitHandle.Close(); }
private void DBBackup_ZipWorker(int i) { System.Windows.Forms.DialogResult dr; string sDr = string.Empty; try { workerProcess = new BackgroundWorker(); workerProcess.WorkerReportsProgress = true; workerProcess.WorkerSupportsCancellation = true; if (workerProcess.IsBusy == false) { if (i == 0) { oFactoryResetTransport.BackUpDataBase = FactoryResetConstants.strExchangeDBName; } else if (i == 1) { oFactoryResetTransport.BackUpDataBase = FactoryResetConstants.strTicketingDBName; } workerProcess.DoWork += (s, args) => { Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { lblStatus.Text = "Status:\nCreating DB backup..."; }); odelDatabaseBackup = new delDatabaseBackup(CreateSqlDatabaseBackUp); IAsyncResult ar = odelDatabaseBackup.BeginInvoke(oFactoryResetTransport.BackUpDataBase, new AsyncCallback(BackupComplete), new object()); while (!ar.IsCompleted) { Thread.Sleep(10); ar.AsyncWaitHandle.WaitOne(); workerProcess.ReportProgress(DateTime.Now.Second); } workerProcess.ReportProgress(DateTime.Now.Second); if (workerProcess.CancellationPending) { args.Cancel = true; MakeVisible(); Refresh(); return; } }; workerProcess.ProgressChanged += (s, args) => { pbFactory.Value = 50 + args.ProgressPercentage; if (Spin.IsFrozen) { LayoutRoot.BeginAnimation(Border.OpacityProperty, Spin, HandoffBehavior.SnapshotAndReplace); } }; workerProcess.RunWorkerCompleted += (s, args) => { if (args.Cancelled == true) { pbFactory.Value = 0; } else { if (bDatabaseBackup == false) { pbFactory.Value = 60; dr = MessageBox.ShowBox("MessageID176", BMC_Icon.Question, BMC_Button.YesNo); sDr = dr.ToString().ToUpper(); if (sDr == "NO") { pbFactory.Value = 0; MakeVisible(); Refresh(); workerProcess.CancelAsync(); workerProcess.Dispose(); return; } } else { pbFactory.Value = 65; //dr = MessageBox.ShowBox("MessageID177", BMC_Icon.Question, BMC_Button.YesNo); // sDr = dr.ToString().ToUpper(); // if (sDr == "YES") // { pbFactory.Value = 70; if (CreateZip() == false) { pbFactory.Value = 80; dr = MessageBox.ShowBox("MessageID178", BMC_Icon.Question, BMC_Button.YesNo); sDr = dr.ToString().ToUpper(); if (sDr == "NO") { pbFactory.Value = 0; MakeVisible(); Refresh(); workerProcess.CancelAsync(); workerProcess.Dispose(); return; } } //} } i = i + 1; if (i == 1 && args.Cancelled == false) { DBBackup_ZipWorker(i); } if (i > 1 && args.Cancelled == false) { ResumeFactoryProcess(); } } }; workerProcess.RunWorkerAsync(); } } catch (Exception ex) { ExceptionManager.Publish(ex); pbFactory.Value = 0; } }
private void DBBackup_ZipWorker(int i) { System.Windows.Forms.DialogResult dr; string sDr = string.Empty; try { workerProcess = new BackgroundWorker(); workerProcess.WorkerReportsProgress = true; workerProcess.WorkerSupportsCancellation = true; if (workerProcess.IsBusy == false) { if (i == 0) { oFactoryResetTransport.BackUpDataBase = FactoryResetConstants.strExchangeDBName; } else if (i == 1) { oFactoryResetTransport.BackUpDataBase = FactoryResetConstants.strTicketingDBName; } workerProcess.DoWork += (s, args) => { Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate { lblStatus.Text = "Status:\nCreating DB backup..."; }); odelDatabaseBackup = new delDatabaseBackup(CreateSqlDatabaseBackUp); IAsyncResult ar = odelDatabaseBackup.BeginInvoke(oFactoryResetTransport.BackUpDataBase, new AsyncCallback(BackupComplete), new object()); while (!ar.IsCompleted) { Thread.Sleep(10); ar.AsyncWaitHandle.WaitOne(); workerProcess.ReportProgress(DateTime.Now.Second); } workerProcess.ReportProgress(DateTime.Now.Second); if (workerProcess.CancellationPending) { args.Cancel = true; MakeVisible(); Refresh(); return; } }; workerProcess.ProgressChanged += (s, args) => { pbFactory.Value = 50 + args.ProgressPercentage; if (Spin.IsFrozen) LayoutRoot.BeginAnimation(Border.OpacityProperty, Spin, HandoffBehavior.SnapshotAndReplace); }; workerProcess.RunWorkerCompleted += (s, args) => { if (args.Cancelled == true) { pbFactory.Value = 0; } else { if (bDatabaseBackup == false) { pbFactory.Value = 60; dr = MessageBox.ShowBox("MessageID176", BMC_Icon.Question, BMC_Button.YesNo); sDr = dr.ToString().ToUpper(); if (sDr == "NO") { pbFactory.Value = 0; MakeVisible(); Refresh(); workerProcess.CancelAsync(); workerProcess.Dispose(); return; } } else { pbFactory.Value = 65; //dr = MessageBox.ShowBox("MessageID177", BMC_Icon.Question, BMC_Button.YesNo); // sDr = dr.ToString().ToUpper(); // if (sDr == "YES") // { pbFactory.Value = 70; if (CreateZip() == false) { pbFactory.Value = 80; dr = MessageBox.ShowBox("MessageID178", BMC_Icon.Question, BMC_Button.YesNo); sDr = dr.ToString().ToUpper(); if (sDr == "NO") { pbFactory.Value = 0; MakeVisible(); Refresh(); workerProcess.CancelAsync(); workerProcess.Dispose(); return; } } //} } i = i + 1; if (i == 1 && args.Cancelled == false) DBBackup_ZipWorker(i); if (i > 1 && args.Cancelled == false) ResumeFactoryProcess(); } }; workerProcess.RunWorkerAsync(); } } catch (Exception ex) { ExceptionManager.Publish(ex); pbFactory.Value = 0; } }