/// <summary> /// Displays the login window and will initialize the application with /// login credentials. /// </summary> private void Login() { if (ShowLoginWindow() == false) { return; } this.PlaylistView.Initialize(); this.NavigationControl.Initialize(); PlaylistService.Initialize(this.PlaylistView.ViewModel); _userCache = UserCache.Load(SpotifyClientService.User.Id); GetNewsFeed(_userCache); //TODO: Support other music services. This should be broken out into a separate UI action. LoginViewModel loginViewModel = (LoginViewModel)this.LoginControl.DataContext; loginViewModel.AccountName = SpotifyClientService.User.DisplayName; loginViewModel.MusicService = MusicService.Spotify; MainWindowViewModel mainWindowViewModel = (MainWindowViewModel)this.DataContext; mainWindowViewModel.IsLoggedIn = true; }
/// <summary> /// Create a graph node and add it to the view-model. /// </summary> public NetworkNodeViewModel CreateArtistGraphNode(IHierarchyNode hierarchyNode, Point nodeLocation) { Debug.Assert(hierarchyNode is ArtistHierarchyNode); ArtistViewModel viewModel = ((ArtistHierarchyNode)hierarchyNode).ArtistViewModel; ArtistNetworkNodeViewModel node = new ArtistNetworkNodeViewModel(viewModel, _hierarchy, ((ArtistHierarchyNode)hierarchyNode), PlaylistService.GetCurrentPlaylist()); // Initialize any style modifiers. node.X = nodeLocation.X; node.Y = nodeLocation.Y; node.InputConnectors.Add(new ConnectorViewModel("", ConnectorType.Input)); node.OutputConnectors.Add(new ConnectorViewModel("", ConnectorType.Output)); hierarchyNode.GraphNodeViewModel = node; // Add the node to the view-model. // this.Network.Nodes.Add(node); return(node); }