private void RunWorkflowButton_Click(object sender, RoutedEventArgs e) { try { if (StaticTasksObservableCollection.Count == 0) { MessageBox.Show("You must add a workflow before a run.", "Run Workflows", MessageBoxButton.OK, MessageBoxImage.Information); return; } else if (RnaSeqFastqCollection.Any() && GetPathToFastqs().CompareTo(OutputFolderTextBox.Text) != 0) // to be edited { MessageBox.Show("FASTQ files do not exist in the user-defined analysis directory.", "Run Workflows", MessageBoxButton.OK, MessageBoxImage.Information); return; } DynamicTasksObservableCollection = new ObservableCollection <InRunTask>(); DynamicTasksObservableCollection.Add(new InRunTask("Workflow 1", StaticTasksObservableCollection.First().options)); workflowTreeView.DataContext = DynamicTasksObservableCollection; Everything = new EverythingRunnerEngine(DynamicTasksObservableCollection.Select(b => new Tuple <string, Options>(b.DisplayName, b.options)).First(), OutputFolderTextBox.Text); Everything.SetUpDirectories(); WarningsTextBox.Document.Blocks.Clear(); WarningsTextBox.AppendText(string.Join("\n", Everything.GenerateCommandsDry().Select(x => $"Command executing: Powershell.exe {x}"))); // keep for debugging var t = new Task(Everything.Run); t.Start(); t.ContinueWith(DisplayAnyErrors); // update gui RunWorkflowButton.IsEnabled = false; ClearTasksButton.IsEnabled = true; BtnWorkFlow.IsEnabled = false; ResetTasksButton.IsEnabled = true; } catch (TaskCanceledException) { // Ignore error } }