private void worker_DoWork(object sender, DoWorkEventArgs e) { AddToDatabase addToDatabase = new AddToDatabase(); for (int switchvar = 0; switchvar < 17; switchvar++) { if (worker.CancellationPending) { MessageBoxResult result = MessageBox.Show( "Do you want to cancel this task? Cancelling could cause issue with the database file", "Cancel Operation", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (result == MessageBoxResult.Yes) { e.Cancel = true; return; } } switch (switchvar) { case 0: addToDatabase.fetch_vn_basic(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 1: addToDatabase.fetch_vn_details(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 2: addToDatabase.fetch_vn_relations(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 3: addToDatabase.fetch_vn_stats(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 4: addToDatabase.fetch_vn_screens(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 5: addToDatabase.fetch_releases(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 6: addToDatabase.fetch_characters(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 7: addToDatabase.fetch_tags(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 8: addToDatabase.fetch_traits(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 9: addToDatabase.AddNovelData(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 10: addToDatabase.AddNovelCategory(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 11: addToDatabase.AddVnApi(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 12: addToDatabase.AddVnRelations(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 13: addToDatabase.AddVnTags(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 14: addToDatabase.AddReleaseApi(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 15: addToDatabase.AddCharacterApi(); (sender as BackgroundWorker).ReportProgress(switchvar); break; case 16: addToDatabase.AddCharacterTraits(); (sender as BackgroundWorker).ReportProgress(switchvar); break; } Thread.Sleep(220); } }