private void DeletePlaylistExecute(object playlist) { if (playlist.ToString() == SelectedPlaylist) { StopExecute(); if (SelectedPlaylist != Playlists.First()) { SelectedPlaylist = Playlists[Playlists.IndexOf(SelectedPlaylist) - 1]; } else if (SelectedPlaylist != Playlists.Last()) { SelectedPlaylist = Playlists[Playlists.IndexOf(SelectedPlaylist) + 1]; } else { SelectedPlaylist = null; StopAndClearPlaylist(); } } DatabaseInterface.DeletePlaylist(playlist.ToString()); RefreshPlaylistsList(); RaisePropertyChanged("PlaybackNextStateIcon"); }
public async Task <Playlist> CopyPlaylist(Models.PlaylistRequest request) { var playlist = Playlists.First(t => t.Id == request.PlaylistId); var savedCopy = await _spotifyWebApi.CreatePlaylist(playlist, SpotifyApi.Playlists(Me), Token); Playlists.Add(savedCopy); return(savedCopy); }
public void PlaylistsListBox_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { ListBox listBox = sender as ListBox; if (listBox != null && listBox.SelectedItems.Count > 0) { string playlistName = listBox.SelectedItems[0] as string; Playlist selectedPlaylist = Playlists.First(x => x.Name.Equals(playlistName)); _mainContentViewModel.ShowPlaylist(selectedPlaylist); _playlistsViewModel.CurrentPlaylist = selectedPlaylist; } }
private async Task RestOfAddToPlaylist() { AddingText = AddingTo(); PlaylistName = string.Empty; NavigationService.NavigateTo(Constants.Pages.Playlists.AddToPlaylistView); await LoadPlaylists(false); if (!Playlists.IsNullOrEmpty()) { SelectedPlaylist = Playlists.First(); } }
public async Task <IEnumerable <Track> > GetPlaylistTracks(Models.PlaylistRequest request) { var playlist = Playlists.First(t => t.Id == request.PlaylistId); LastTrackSet = await _spotifyWebApi.Get <Envelope <TrackShell> >(playlist.Tracks.Resource, Token); while (!string.IsNullOrWhiteSpace(LastTrackSet.Next?.ToString())) { LastTrackSet = await _spotifyWebApi.Get <Envelope <TrackShell> >(LastTrackSet.Next, Token); } return(Tracks); }
public override void WireMessages() { Messenger.Default.Register<NotificationMessage>(this, async m => { if (m.Notification.Equals(Constants.Messages.AddToServerPlaylistsMsg)) { await LoadPlaylists(false); if (Playlists.Count > 0) { SelectedPlaylist = Playlists.First(); } } }); }
private async Task LoadPlaylists(bool isRefresh) { if (!NavigationService.IsNetworkAvailable || (_playlistsLoaded && !isRefresh)) { return; } try { SetProgressBar(AppResources.SysTrayLoadingPlaylists); var query = new ItemQuery { UserId = AuthenticationService.Current.LoggedInUserId, IncludeItemTypes = new[] { "Playlist" }, Recursive = true }; var items = await ApiClient.GetItemsAsync(query); if (items != null && !items.Items.IsNullOrEmpty()) { var playlists = items.Items.ToList(); playlists.Insert(0, new BaseItemDto { Name = AppResources.LabelNewPlaylist }); Playlists = playlists; SelectedPlaylist = Playlists.First(); _playlistsLoaded = true; } } catch (HttpException ex) { Utils.HandleHttpException(ex, "LoadPlaylists(" + isRefresh + ")", NavigationService, Log); IsAddingToPlaylist = false; } SetProgressBar(); }