public EditPlaylistDialog(PlaylistToDisplay p) { this.DataContext = this; Playlist = p; NewPlaylistName = p.Name; this.InitializeComponent(); }
private void DeletePlaylist(PlaylistToDisplay obj) { try { PlaylistService.DeletePlaylist(obj.id); RefreshPlaylists(); } catch (Exception ex) { Logger.LogError(this, ex.Message); ShowErrorMessage("There was an error during deleting playlist."); } }
/// <summary> /// Plays playlist passed as a parameter /// </summary> /// <param name="playlist"></param> /// <returns></returns> public async Task PlayPlaylist(PlaylistToDisplay playlist) { if (playlist == null) { throw new ArgumentNullException("There was an error during fetching tracks for playlist. Play playlist failed."); } var tracks = PlaylistTrackService.GetPlaylistTracks(playlist.id).OrderBy(pt => pt.TrackOrder); if (tracks == null) { throw new EmptyPlaylistException("Playlist does not contain any tracks."); } else if (tracks.Count() == 0) { throw new EmptyPlaylistException("Playlist does not contain any tracks."); } List <PlaylistTrackToDisplay> deletedPlaylistTracks = new List <PlaylistTrackToDisplay>(); Playlist = playlist; // Clear tracks from current playlist Tracks.Clear(); foreach (var t in tracks) { var tempTrack = await SoundCloudHelper.GetSoundCloudTrack(t.TrackID); if (tempTrack != null) { Tracks.Add(tempTrack); } else { deletedPlaylistTracks.Add(t); } } MessageService.SendMessageToBackground(this, new UpdatePlaylistMessage(Tracks.ToList())); if (deletedPlaylistTracks.Count > 0) { foreach (var deletedPlaylistTrack in deletedPlaylistTracks) { PlaylistTrackService.DeletePlaylistTrack(deletedPlaylistTrack.id); } for (int i = 0; i < Tracks.Count; ++i) { var movedTrack = PlaylistTrackService.GetPlaylistTrack(Playlist.id, (int)Tracks[i].id); movedTrack.TrackOrder = i; PlaylistTrackService.ModifyPlaylistTrack(movedTrack); } throw new SoundCloudTrackNotAvailableException($"Some of your tracks were deleted from playlist {playlist.Name}, because they were no longer available on SoundCloud", deletedPlaylistTracks.Select(pt => pt.id).ToList()); } }
private void EditPlaylist(PlaylistToDisplay obj) { if (obj != null) { WindowWrapper.Current().Dispatcher.Dispatch(() => { var modal = Window.Current.Content as ModalDialog; var editPlaylistDialog = new EditPlaylistDialog(obj); editPlaylistDialog.Closing += DialogClosed; modal.ModalContent = editPlaylistDialog; modal.IsModal = true; modal.ModalBackground = new SolidColorBrush(Colors.Transparent); }); } }
/// <summary> /// Modifies playlist in database /// </summary> /// <param name="playlist"></param> public static void ModifyPlaylist(PlaylistToDisplay playlist) { if (playlist != null) { using (var db = new TraxxPlayerContext()) { if (PlaylistExist(playlist.id)) { var playlistToModify = db.Playlists.First(p => p.id == playlist.id); playlistToModify.Name = playlist.Name; db.SaveChanges(); } else { throw new Exception("Playlist with provided id doesn't exist. Modify failed"); } } } else { throw new Exception("Playlist cannot be null. Modify failed"); } }
public async void AddTrackToPlaylist(PlaylistToDisplay playlistSelected) { try { if (rightTappedTrack != null && playlistSelected != null) { PlaylistTrackService.AddPlaylistTrack(new PlaylistTrackToAdd() { PlaylistID = playlistSelected.id, TrackID = (int)rightTappedTrack.id }); if (App.PlaylistManager.Playlist.id == playlistSelected.id) { await App.PlaylistManager.PlayPlaylist(App.PlaylistManager.Playlist); App.PlaylistManager.PlayPlaylistTrack(rightTappedTrack); } } } catch (Exception ex) { Logger.LogError(this, ex.Message); ShowErrorMessage("There was an error during adding track to playlist."); } }
/// <summary> /// Stops playing /// </summary> public void StopPlayer() { Tracks.Clear(); Playlist = null; MessageService.SendMessageToBackground(this, new ShutdownBackgroundMediaPlayer()); }