Esempio n. 1
0
        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();
        }
Esempio n. 2
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;
            }
        }
        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;
            }
        }