// Ctor public MainViewModel() { LoadPlaylist(); CurrentPlaylist = Playlists.FirstOrDefault(); CurrentTrack = CurrentPlaylist.TrackList.FirstOrDefault(); }
async Task ExecuteLoadChannelCommand() { if (IsBusy) { return; } IsBusy = true; try { Playlists.Clear(); var items = await VideoRepository.LoadChannelAsync(""); foreach (var item in items) { Playlists.Add(item); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } CurrentPlayList = Playlists.FirstOrDefault(pl => pl.Id == "PLlZwsUoL6TOaEwk2wkvVrrZnsSiCl7VKb"); }
public void RemovePlaylist(string playlistId) { var playlistToRemove = Playlists.FirstOrDefault(x => x.Id == playlistId); if (playlistToRemove != null) { Playlists.Remove(playlistToRemove); } }
public SongCollectionManager(StorageConfiguration storageConfiguration) { _storageConfiguration = storageConfiguration; storageConfiguration.OnMusicDirectoryChanged += StorageConfiguration_OnMusicDirectoryChanged; storageConfiguration.OnPlaylistDirectoryChanged += StorageConfiguration_OnPlaylistDirectoryChanged; RetrieveSongs(); RetrievePlaylists(); SelectedPlaylist = Playlists.FirstOrDefault(); }
public void ReadXml(XmlReader reader) { string currentPlaylistPath = reader.GetAttribute("CurrentPlaylistPath"); try { Playlists = XmlConverter.Deserialize(new PlaylistCollection(), reader.ReadInnerXml()); } catch (Exception e) { MobileDebug.Service.WriteEvent("LibraryXmlLoadFail", e, reader.Name, reader.NodeType); throw; } CurrentPlaylist = Playlists.FirstOrDefault(p => p.AbsolutePath == currentPlaylistPath) ?? Playlists.FirstOrDefault(); Loaded?.Invoke(this, System.EventArgs.Empty); }
private void SetCurrentPlaylistAndCurrentSong(string currentSongPath, double currentSongPosition) { foreach (IPlaylist playlist in Playlists) { Song currentSong = playlist.Songs.FirstOrDefault(s => s.Path == currentSongPath); if (currentSong != null) { CurrentPlaylist = playlist; CurrentPlaylist.CurrentSong = currentSong; CurrentPlaylist.CurrentSongPosition = currentSongPosition; return; } } CurrentPlaylist = Playlists.FirstOrDefault(); if (CurrentPlaylist != null) { CurrentPlaylist.CurrentSong = CurrentPlaylist.Songs.FirstOrDefault(); } }
public void UndoRemoveMusic(Music music) { JustRemoved.Remove(music); if (Tree.FindTree(music) is FolderTree tree) { tree.Files.Add(music); tree.Sort(); } foreach (var pair in RemovedPlaylist) { Playlists.FirstOrDefault(p => p.Name == pair.Key)?.Songs.Insert(pair.Value, music); } if (myFavoratesRemovedIndex > -1) { MyFavorites.Songs.Insert(myFavoratesRemovedIndex, music); } if (recentPlayedRemovedIndex > -1) { RecentPlayed.Insert(recentPlayedRemovedIndex, music.Path); } RecentPage.RecentAdded.Add(music); }
private void OnMessagePlaylistRemoved(MessagePlaylistRemoved message) { Playlists.Remove(Playlists.FirstOrDefault(a => a.Id == message.Playlist.Id)); }
/// <summary> /// Drop down list changed event to bind the playlist to the view /// </summary> /// <returns></returns> public async Task BindPlaylist(ChangeEventArgs e) { if (IsRandifying || IsPlaylistLoading) { return; } var playlistId = e.Value.ToString(); try { IsPlaylistLoading = true; Seconds = 0; NumberOfLoadedTracks = 0; Stopwatch = new Stopwatch(); Stopwatch.Start(); PlaylistTracks.Clear(); try { var tracks = new List <PlaylistTrack>(); CurrentPlaylist = Playlists.FirstOrDefault(o => o.Id == playlistId); var page = await SpotifyService.GetPlaylistTracks(AuthenticationService.User, AuthenticationService.AuthenticationToken, CurrentPlaylist); do { foreach (var playlistTrack in page.Items) { tracks.Add(playlistTrack); } Seconds = Stopwatch.Elapsed.Seconds; NumberOfLoadedTracks = tracks.Count(); StateHasChanged(); if (page.HasNextPage) { page = await SpotifyService.GetNextPage(page, AuthenticationService.AuthenticationToken); } else { page = null; } }while (page != null); PlaylistTracks = tracks; } catch (Exception ex) { PageException = ex; } NumberOfLoadedTracks = PlaylistTracks.Count(); IsPlaylistLoading = false; Stopwatch.Stop(); StateHasChanged(); } catch (Exception ex) { PageException = ex; } }