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");
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
            }
        }
Exemple #5
0
        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();
        }