protected internal virtual IVsPackageManager GetActivePackageManager() { if (SelectedNode == null) { return(null); } else if (SelectedNode.IsSearchResultsNode) { PackagesSearchNode searchNode = (PackagesSearchNode)SelectedNode; SimpleTreeNode baseNode = (SimpleTreeNode)searchNode.BaseNode; return(_packageManagerFactory.CreatePackageManager(baseNode.Repository, useFallbackForDependencies: true)); } else { var selectedNode = SelectedNode as SimpleTreeNode; return((selectedNode != null) ? _packageManagerFactory.CreatePackageManager(selectedNode.Repository, useFallbackForDependencies: true) : null); } }
public override IVsExtensionsTreeNode Search(string searchText) { if (OperationCoordinator.IsBusy) { return(null); } if (!String.IsNullOrWhiteSpace(searchText) && SelectedNode != null) { searchText = searchText.Trim(); if (_searchNode != null) { _searchNode.Extensions.Clear(); _searchNode.SetSearchText(searchText); } else { var provider = GetSearchProvider(); if (provider.Name == Resources.Dialog_OnlineProvider) { _searchNode = new PagedPackagesSearchNode(provider, RootNode, SelectedNode, searchText); } else { _searchNode = new PackagesSearchNode(provider, RootNode, SelectedNode, searchText); } AddSearchNode(); } } else { RemoveSearchNode(); } return(_searchNode); }
private void RemoveSearchNode() { if (_searchNode != null) { // When remove the search node, the dialog will automatically select the first node (All node) // Since we are going to restore the previously selected node anyway, we don't want the first node // to refresh. Hence suppress it here. SuppressNextRefresh = true; try { // dispose any search results RootNode.Nodes.Remove(_searchNode); } finally { _searchNode = null; SuppressNextRefresh = false; } if (_lastSelectedNode != null) { // after search, we want to reset the original node to page 1 (Work Item #461) _lastSelectedNode.CurrentPage = 1; SelectNode(_lastSelectedNode); } } }
public override IVsExtensionsTreeNode Search(string searchText) { if (OperationCoordinator.IsBusy) { return null; } if (!String.IsNullOrEmpty(searchText) && SelectedNode != null) { if (_searchNode != null) { _searchNode.SetSearchText(searchText); } else { _searchNode = new PackagesSearchNode(this, this.RootNode, SelectedNode, searchText); AddSearchNode(); } } else { RemoveSearchNode(); } return _searchNode; }
public override IVsExtensionsTreeNode Search(string searchText) { if (OperationCoordinator.IsBusy) { return null; } if (!String.IsNullOrWhiteSpace(searchText) && SelectedNode != null) { searchText = searchText.Trim(); if (_searchNode != null) { _searchNode.Extensions.Clear(); _searchNode.SetSearchText(searchText); } else { _searchNode = new PackagesSearchNode(this, RootNode, SelectedNode, searchText); AddSearchNode(); } } else { RemoveSearchNode(); } return _searchNode; }
public override IVsExtensionsTreeNode Search(string searchText) { if (OperationCoordinator.IsBusy) { return null; } if (!String.IsNullOrWhiteSpace(searchText) && SelectedNode != null) { searchText = searchText.Trim(); if (_searchNode != null) { _searchNode.Extensions.Clear(); _searchNode.SetSearchText(searchText); } else { var provider = GetSearchProvider(); if (provider.Name == Resources.Dialog_OnlineProvider) { _searchNode = new PagedPackagesSearchNode(provider, RootNode, SelectedNode, searchText); } else { _searchNode = new PackagesSearchNode(provider, RootNode, SelectedNode, searchText); } AddSearchNode(); } } else { RemoveSearchNode(); } return _searchNode; }
public void GetPackagesDoNotCollapseVersionsIfBaseNodeDoesNotDoSo() { // Arrange PackagesProviderBase provider = new MockPackagesProvider(); IVsExtensionsTreeNode parentTreeNode = new Mock<IVsExtensionsTreeNode>().Object; MockTreeNode baseTreeNode = new MockTreeNode( parentTreeNode, provider, new[] { PackageUtility.CreatePackage("Azo", "1.0"), PackageUtility.CreatePackage("Azo", "2.0"), PackageUtility.CreatePackage("B", "3.0"), PackageUtility.CreatePackage("B", "4.0"), PackageUtility.CreatePackage("C", "5.0"), }, collapseVersions: false ); var node = new PackagesSearchNode(provider, parentTreeNode, baseTreeNode, "Azo"); // Act var packages = node.GetPackages().ToList(); // Assert Assert.Equal(2, packages.Count); Assert.Equal("Azo", packages[0].Id); Assert.Equal(new SemanticVersion("1.0"), packages[0].Version); Assert.Equal("Azo", packages[1].Id); Assert.Equal(new SemanticVersion("2.0"), packages[1].Version); }
public void GetPackagesDoNotReturnPrereleasePackagesIfToldSo() { // Arrange var sourceRepository = new MockPackageRepository(); sourceRepository.AddPackage(PackageUtility.CreatePackage("Azo1", "2.0")); sourceRepository.AddPackage(PackageUtility.CreatePackage("Azo2", "3.0-alpha")); sourceRepository.AddPackage(PackageUtility.CreatePackage("B1", "2.0")); sourceRepository.AddPackage(PackageUtility.CreatePackage("B2", "4.0")); IVsExtensionsTreeNode parentTreeNode = new Mock<IVsExtensionsTreeNode>().Object; PackagesProviderBase provider = new MockPackagesProvider(); var baseNode = new SimpleTreeNode(provider, "Online", parentTreeNode, sourceRepository); var searchNode = new PackagesSearchNode(provider, parentTreeNode, baseNode, "Azo"); // Act var packages = searchNode.GetPackages(allowPrereleaseVersions: false).ToList(); // Assert Assert.Equal(1, packages.Count); Assert.Equal("Azo1", packages[0].Id); Assert.Equal(new SemanticVersion("2.0"), packages[0].Version); }
public void GetPackagesReturnsUsesSearchTermPassedInConstructorForSearching() { // Arrange PackagesProviderBase provider = new MockPackagesProvider(); IVsExtensionsTreeNode parentTreeNode = new Mock<IVsExtensionsTreeNode>().Object; MockTreeNode baseTreeNode = new MockTreeNode( parentTreeNode, provider, new[] { PackageUtility.CreatePackage("TestPackage", "1.0"), PackageUtility.CreatePackage("TestPackage", "2.0"), PackageUtility.CreatePackage("Awesome", "1.0"), PackageUtility.CreatePackage("Awesome", "1.2"), }, collapseVersions: false ); var node = new PackagesSearchNode(provider, parentTreeNode, baseTreeNode, "TestPackage"); // Act var packages = node.GetPackages(searchTerm: "Foobar", allowPrereleaseVersions: true).ToList(); // Assert Assert.Equal(2, packages.Count); Assert.Equal("TestPackage", packages[0].Id); Assert.Equal(new SemanticVersion("1.0"), packages[0].Version); Assert.Equal("TestPackage", packages[1].Id); Assert.Equal(new SemanticVersion("2.0"), packages[1].Version); }