private void ReloadSolutionComponentFromAggregatedSolution(AggregatedSolution aggregatedSolution) { SetDialog("Retrieving components..."); ThreadManager.Instance.ScheduleTask(() => { var isError = false; var errorMessage = string.Empty; List <MergedInSolutionComponent> mergedSolutionComponents = new List <MergedInSolutionComponent>(); var workSolutions = new List <WorkSolution>(); try { workSolutions = CurrentSolutionManager.GetWorkSolutions(aggregatedSolution); mergedSolutionComponents = CurrentSolutionManager.GetMergedSolutionComponents(workSolutions, true); } catch (Exception ex) { isError = true; errorMessage = ex.Message; } System.Windows.Application.Current.Dispatcher.Invoke(() => { if (isError) { MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { WorkSolutions = workSolutions; SolutionComponents = mergedSolutionComponents; } UnsetDialog(); }); }, "Retrieving components...", _reloadComponentsTaskId); }