/// <summary> /// /// </summary> /// <param name="subTreeNode"></param> /// <returns>Returns whether the sub-tree has been fully expanded in the hierarchy.</returns> public void GenerateSubTree(HierarchyNode subTreeNode) { ArtistGroup relatedArtistList = Client.GetRelatedArtists(subTreeNode.ArtistViewModel.Artist.ID); //First determine which artists are new; add those. List <Artist> newArtists = new List <Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) { continue; } if (nodesAdded < MaxChildren) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); HierarchyNode relatedArtistNode = new HierarchyNode(artistViewModel, subTreeNode, subTreeNode.Level + 1); subTreeNode.Children.Add(relatedArtistNode); artistViewModel.SetHierarchyNode(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { return; } } }
private void GenerateTree(String artistName) { //Going to separate artists based on the genres used to describe them. //Assume that the first artist is what we're pivoting on. if (NodeDictionary.ContainsKey(artistName)) { return; } ArtistList rootArtistList = Client.GetArtist(artistName); //TODO: Using the first one for now. Since there could be multiple roots, we'll need to handle this. Artist rootArtist = rootArtistList.Artists.Items[0]; ArtistViewModel rootViewModel = new ArtistViewModel(rootArtist); HierarchyNode root = new HierarchyNode(rootViewModel, null, 0); RootNodes.Add(root); rootViewModel.SetHierarchyNode(root); NodeDictionary.Add(rootArtist.Name, root); ArtistGroup relatedArtistList = Client.GetRelatedArtists(rootArtist.ID); //First determine which artists are new; add those. List <Artist> newArtists = new List <Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) { continue; } if (nodesAdded < MaxChildren) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); HierarchyNode relatedArtistNode = new HierarchyNode(artistViewModel, root, 1); root.Children.Add(relatedArtistNode); artistViewModel.SetHierarchyNode(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { break; } } }
private void GenerateTree(String artistName) { //Going to separate artists based on the genres used to describe them. //Assume that the first artist is what we're pivoting on. if (NodeDictionary.ContainsKey(artistName)) return; ArtistList rootArtistList = Client.GetArtist(artistName); //TODO: Using the first one for now. Since there could be multiple roots, we'll need to handle this. Artist rootArtist = rootArtistList.Artists.Items[0]; ArtistViewModel rootViewModel = new ArtistViewModel(rootArtist); HierarchyNode root = new HierarchyNode(rootViewModel, null, 0); RootNodes.Add(root); rootViewModel.SetHierarchyNode(root); NodeDictionary.Add(rootArtist.Name, root); ArtistGroup relatedArtistList = Client.GetRelatedArtists(rootArtist.ID); //First determine which artists are new; add those. List<Artist> newArtists = new List<Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) continue; if (nodesAdded < MaxChildren) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); HierarchyNode relatedArtistNode = new HierarchyNode(artistViewModel, root, 1); root.Children.Add(relatedArtistNode); artistViewModel.SetHierarchyNode(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { break; } } }
/// <summary> /// /// </summary> /// <param name="subTreeNode"></param> /// <returns>Returns whether the sub-tree has been fully expanded in the hierarchy.</returns> public void GenerateSubTree(HierarchyNode subTreeNode) { ArtistGroup relatedArtistList = Client.GetRelatedArtists(subTreeNode.ArtistViewModel.Artist.ID); //First determine which artists are new; add those. List<Artist> newArtists = new List<Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) continue; if (nodesAdded < MaxChildren) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); HierarchyNode relatedArtistNode = new HierarchyNode(artistViewModel, subTreeNode, subTreeNode.Level + 1); subTreeNode.Children.Add(relatedArtistNode); artistViewModel.SetHierarchyNode(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { return; } } }