private void OnBindingFinished(ProjectInformation projectInformation, bool isFinishedSuccessfully) { this.IsBindingInProgress = false; this.host.VisualStateManager.ClearBoundProject(); if (isFinishedSuccessfully) { this.host.VisualStateManager.SetBoundProject(projectInformation); var conflictsController = this.host.GetService <IRuleSetConflictsController>(); conflictsController.AssertLocalServiceIsNotNull(); if (conflictsController.CheckForConflicts()) { // In some cases we will end up navigating to the solution explorer, this will make sure that // we're back in team explorer to view the conflicts this.ServiceProvider.GetMefService <ITeamExplorerController>()?.ShowSonarQubePage(); } else { VsShellUtils.ActivateSolutionExplorer(this.ServiceProvider); } } else { IUserNotification notifications = this.host.ActiveSection?.UserNotifications; if (notifications != null) { // Create a command with a fixed argument with the help of ContextualCommandViewModel that creates proxy command for the contextual (fixed) instance and the passed in ICommand that expects it ICommand rebindCommand = new ContextualCommandViewModel(projectInformation, new RelayCommand <ProjectInformation>(this.OnBind, this.OnBindStatus)).Command; notifications.ShowNotificationError(Strings.FailedToToBindSolution, NotificationIds.FailedToBindId, rebindCommand); } } }
public void VsShellUtils_ActivateSolutionExplorer() { // Setup var serviceProvider = new ConfigurableServiceProvider(); var dteMock = new DTEMock(); serviceProvider.RegisterService(typeof(DTE), dteMock); // Sanity Assert.IsFalse(dteMock.ToolWindows.SolutionExplorer.Window.Active); // Act VsShellUtils.ActivateSolutionExplorer(serviceProvider); // Verify Assert.IsTrue(dteMock.ToolWindows.SolutionExplorer.Window.Active, "Expected to become Active"); }
public void VsShellUtils_ActivateSolutionExplorer() { // Arrange var serviceProvider = new ConfigurableServiceProvider(); var dteMock = new DTEMock(); serviceProvider.RegisterService(typeof(DTE), dteMock); // Sanity dteMock.ToolWindows.SolutionExplorer.Window.Active.Should().BeFalse(); // Act VsShellUtils.ActivateSolutionExplorer(serviceProvider); // Assert dteMock.ToolWindows.SolutionExplorer.Window.Active.Should().BeTrue("Expected to become Active"); }
private void OnBindingFinished(BindCommandArgs bindingArgs, bool isFinishedSuccessfully) { this.IsBindingInProgress = false; this.host.VisualStateManager.ClearBoundProject(); if (isFinishedSuccessfully) { this.host.VisualStateManager.SetBoundProject(bindingArgs.Connection.ServerUri, bindingArgs.Connection.Organization?.Key, bindingArgs.ProjectKey); // The conflicts controller is only applicable in legacy connected mode // However, it is safe to call it regardless - in new connected mode it will // not return any conflicts. var conflictsController = this.host.GetService <IRuleSetConflictsController>(); conflictsController.AssertLocalServiceIsNotNull(); if (conflictsController.CheckForConflicts()) { // In some cases we will end up navigating to the solution explorer, this will make sure that // we're back in team explorer to view the conflicts this.host.GetMefService <ITeamExplorerController>()?.ShowSonarQubePage(); } else { VsShellUtils.ActivateSolutionExplorer(this.host); } } else { IUserNotification notifications = this.host.ActiveSection?.UserNotifications; if (notifications != null) { // Create a command with a fixed argument with the help of ContextualCommandViewModel that creates proxy command for the contextual (fixed) instance and the passed in ICommand that expects it var rebindCommandVM = new ContextualCommandViewModel( bindingArgs, new RelayCommand <BindCommandArgs>(this.OnBind, this.OnBindStatus)); notifications.ShowNotificationError(Strings.FailedToToBindSolution, NotificationIds.FailedToBindId, rebindCommandVM.Command); } } }