private async Task ExtractAndDownloadAsync(List <Extractor> extractors) { lblCurrentCourse.Text = $"Extracting Courses (1/{extractors.Count})"; progressBarCourses.Step = 100 / extractors.Count; await SaveConfig(); var courses = new List <Course>(); foreach (var extractor in extractors) { var course = await ExtractCourse(extractor); if (course is null) { return; } courses.Add(course); IncrementlblCurrentCourse(); } progressBarCourses.Value = progressBarCourses.Maximum; progressBarExtractor.Style = ProgressBarStyle.Continuous; progressBarExtractor.Value = progressBarExtractor.Maximum; lblCurrentCourse.Text = "Courses Extracted Successfully"; lblCurrentExtractionOperation.Text = $"Extracted Courses({extractors.Count}/{extractors.Count})"; UC_CourseExtractorStatus.Status = CourseStatus.Finished; var downloaderForm = new DownloaderForm(courses, new DirectoryInfo(txtCourseDirectory.Text), _font); UC_CourseDownloaderStatus.Status = CourseStatus.Running; try { downloaderForm.ShowDialog(); } catch (Exception ex) { MessageBox.Show($"A fatal error occured while downloading the course.\nCheck the logs for more info", "Unknown Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.Error(ex, "An fatal error occured while downloading the course"); UC_CourseDownloaderStatus.Status = CourseStatus.Failed; lblCurrentExtractionOperation.Text = "Course Download Failed"; return; } if (downloaderForm.DownloaderStatus == CourseStatus.Finished) { UC_CourseDownloaderStatus.Status = CourseStatus.Finished; MessageBox.Show("Course Downloaded Successfully :)", "Hooray", MessageBoxButtons.OK, MessageBoxIcon.Information); lblCurrentExtractionOperation.Text = "Course Downloaded Successfully"; } else { UC_CourseDownloaderStatus.Status = CourseStatus.Failed; lblCurrentExtractionOperation.Text = "Course Download Failed"; } }
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { UpdateUI(() => EnableControls(false)); SaveConfig(); var course = ExtractCourse(); if (course is null) { return; } var downloaderForm = new DownloaderForm(course, new DirectoryInfo(txtCourseDirectory.Text), _font); UpdateUI(() => UC_CourseDownloaderStatus.Status = CourseStatus.Running); try { downloaderForm.ShowDialog(); } catch (Exception ex) { MessageBox.Show($"An fatal error occured while downloading the course.\nCheck the logs for more info", "Unknown Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.Error(ex, "An fatal error occured while downloading the course"); Extractor.KillDrivers(); UpdateUI(() => { UC_CourseDownloaderStatus.Status = CourseStatus.Failed; lblCurrentOperation.Text = "Course Download Failed"; }); } UpdateUI(() => { if (downloaderForm.DownloaderStatus == CourseStatus.Finished) { UC_CourseDownloaderStatus.Status = CourseStatus.Finished; MessageBox.Show("Course Downloaded Successfully :)", "Hooray", MessageBoxButtons.OK, MessageBoxIcon.Information); lblCurrentOperation.Text = "Course Downloaded Successfully"; } else { UC_CourseDownloaderStatus.Status = CourseStatus.Failed; lblCurrentOperation.Text = "Course Download Failed"; } }); }