private bool PerformAction()

in CosmosClone/CosmicCloneUI/MainWindow.xaml.cs [146:214]


        private bool PerformAction(Page currentPage)
        {
            if (GetPageNumber(currentPage) == 0)
            {
                var result = ((SourcePage)currentPage).TestSourceConnection();
                return result;
            }
            else if (GetPageNumber(currentPage) == 1)
            {
                var result = ((DestinationPage)currentPage).TestDestinationConnection();
                return result;
            }
            else if (GetPageNumber(currentPage) == 2)
            {
                var page = ((CloneOptionsPage)currentPage);
                var valid = page.TestCloneOptions();
                if (!valid) return false;

                CloneSettings.CopyStoredProcedures = page.SPs.IsChecked.Value;
                CloneSettings.CopyUDFs = page.UDFs.IsChecked.Value;
                CloneSettings.CopyTriggers = page.CosmosTriggers.IsChecked.Value;
                CloneSettings.CopyDocuments = page.Documents.IsChecked.Value;
                CloneSettings.CopyIndexingPolicy = page.IPs.IsChecked.Value;
                CloneSettings.CopyPartitionKey = page.PKs.IsChecked.Value;
                CloneSettings.TargetMigrationOfferThroughputRUs = int.Parse(page.OfferThroughput.Text);

                return true;                
            }
            else if (GetPageNumber(currentPage) == 3)
            {
                btn_finish.IsEnabled = false;
                scrubRules = ((DataAnonymizationPage)currentPage).getScrubRules();
                bool isValidationSuccess = ((DataAnonymizationPage)currentPage).validateInput();
                if (!isValidationSuccess) return false;

                BackgroundWorker worker = new BackgroundWorker
                {
                    WorkerReportsProgress = true
                };
                worker.DoWork += Worker_DoWork;
                worker.ProgressChanged += Worker_ProgressChanged;
                worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
                worker.RunWorkerAsync(1000);

                BackgroundWorker worker2 = new BackgroundWorker
                {
                    WorkerReportsProgress = true
                };
                worker2.DoWork += Worker_DoWork2;
                worker2.ProgressChanged += Worker_ProgressChanged2;
                worker2.RunWorkerCompleted += Worker_RunWorkerCompleted2;
                worker2.RunWorkerAsync(1000);

                var nextPage = GetNextPage(currentPage);
                ((CopyCollectionPage)nextPage).setRequiredprogressBars(scrubRules);

                return true;
            }
            else if (GetPageNumber(currentPage) == 4)
            {
                btn_finish.IsEnabled = false;
                ((CopyCollectionPage)currentPage).setRequiredprogressBars(scrubRules);
                return true;
            }
            else
            {
                return true;
            }
        }