コード例 #1
0
        private async Task ExecuteHubCommunication()
        {
            _installerServices = _componentModel.GetService <IVsPackageInstallerServices>();

            var solution = (IVsSolution)Package.GetGlobalService(typeof(IVsSolution));
            var projects = SolutionExplorer.GetProjects(solution);

            if (projects.Count() > 0)
            {
                tbStatus.SetResourceReference(ForegroundProperty, VsBrushes.PanelTextKey);
                cmbProjects.IsEnabled = false;
                tbStatus.Visibility   = Visibility.Visible;
                pbStatus.Visibility   = Visibility.Visible;
                sepStatus.Visibility  = Visibility.Visible;
                tbStatus.Text         = Properties.Resources.StatusRunning;

                if (await GetPackagesAndRiskInformation(projects))
                {
                    dgPackages.ItemsSource = _packagesList;
                    dgPackages.Items.Refresh();
                    tbStatus.Text            = Properties.Resources.StatusComplete;
                    cmbProjects.ItemsSource  = null;
                    cmbProjects.ItemsSource  = _validProjectsList;
                    cmbProjects.IsEnabled    = true;
                    cmbProjects.SelectedItem = Properties.Resources.ItemAll;
                    pbStatus.Visibility      = Visibility.Hidden;
                    sepStatus.Visibility     = Visibility.Hidden;
                }
                else
                {
                    tbStatus.Foreground  = Brushes.Red;
                    tbStatus.Text        = _riskAnalysisStatus;
                    pbStatus.Visibility  = Visibility.Hidden;
                    sepStatus.Visibility = Visibility.Hidden;
                }
            }
        }