示例#1
0
        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);
        }