protected virtual void AddTracksToPlaylist(Playlist playlist) { AppendToPlaylist(playlist); }
protected virtual async void AppendToPlaylist(Playlist playlist) { if (playlist != null) { try { var changedPlaylist = await this.DataService.AppendToPlaylist(playlist); if (changedPlaylist != null) { //Refreshing all the playlist entry views Messenger.Default.Send<PlaylistEntryChangeMessage>(new PlaylistEntryChangeMessage { Playlist = changedPlaylist }); } } catch(Exception exception) { this.DialogService.ShowDialog(exception.Message); } } }
private async void SaveNewPlaylist() { if (!string.IsNullOrEmpty(this.PlaylistName)) { this.ErrorMessage = string.Empty; BSE.Tunes.Data.TunesUser user = this.m_accountService.User; if (user != null && !string.IsNullOrEmpty(user.UserName)) { Playlist playlist = new Playlist { Name = this.PlaylistName, UserName = user.UserName, Guid = Guid.NewGuid() }; try { playlist = await this.m_dataService.InsertPlaylist(playlist); this.ErrorMessage = string.Empty; this.PlaylistName = string.Empty; if (this.PlaylistInserted != null) { this.PlaylistInserted(this, new PlaylistChangedEventArgs(playlist)); } this.IsOpen = false; } catch (PlaylistExistsException) { this.ErrorMessage = string.Format(CultureInfo.CurrentCulture, this.m_resourceService.GetString("IDS_NewPlaylistDialog_PlayListAlreadyExistsExceptionMessage"), this.PlaylistName); } catch (Exception exception) { this.ErrorMessage = exception.Message; } } } }
private void AddEntriesToPlaylist(Playlist playlist, ObservableCollection<PlaylistEntry> playlistEntries) { if (playlist != null && playlistEntries != null) { foreach (var entry in playlistEntries) { if (entry != null) { playlist.Entries.Add(new PlaylistEntry { PlaylistId = playlist.Id, TrackId = entry.TrackId, Guid = Guid.NewGuid() }); } } this.AppendToPlaylist(playlist); } }
public Playlist GetPlaylistById(int playlistId, string userName) { Playlist playlist = null; if (string.IsNullOrEmpty(userName) == false) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("SELECT p.ListId, p.ListName, p.User, p.Guid, pe.EntryId, pe.sortorder, pe.Guid as EntryGuid, t.LiedID, t.Lied, t.Dauer, a.Guid as AlbumId, i.Interpret FROM tunesEntities.playlist AS p"); stringBuilder.Append(" LEFT JOIN tunesEntities.playlistentries AS pe ON p.ListId = pe.PlaylistId"); stringBuilder.Append(" LEFT JOIN tunesEntities.lieder AS t ON pe.LiedId = t.LiedID"); stringBuilder.Append(" LEFT JOIN tunesEntities.titel AS a ON t.TitelID = a.TitelID"); stringBuilder.Append(" LEFT JOIN tunesEntities.interpreten AS i ON a.InterpretID = i.InterpretID"); stringBuilder.Append(" WHERE p.ListId = @playlistId"); stringBuilder.Append(" AND p.User = @userName"); string sql = stringBuilder.ToString(); using (System.Data.EntityClient.EntityConnection entityConnection = new System.Data.EntityClient.EntityConnection(this.ConnectionString)) { try { entityConnection.Open(); using (EntityCommand entityCommand = entityConnection.CreateCommand()) { EntityParameter trackIdParam = new EntityParameter(); trackIdParam.ParameterName = "playlistId"; trackIdParam.Value = playlistId; entityCommand.Parameters.Add(trackIdParam); EntityParameter user = new EntityParameter(); user.ParameterName = "userName"; user.Value = userName; entityCommand.Parameters.Add(user); entityCommand.CommandText = sql; // Execute the command. using (EntityDataReader dataReader = entityCommand.ExecuteReader(System.Data.CommandBehavior.SequentialAccess)) { // Start reading results. while (dataReader.Read()) { if (playlist == null) { playlist = new Playlist { Id = dataReader.GetInt32("ListId", false, 0), Name = dataReader.GetString("ListName", false, string.Empty), UserName = dataReader.GetString("User", false, string.Empty), Guid = dataReader.GetGuid("Guid", false, Guid.Empty), }; } int entryId = dataReader.GetInt32("EntryId", true, 0); if (entryId > 0) { PlaylistEntry entry = new PlaylistEntry { Id = entryId, SortOrder = dataReader.GetInt32("sortorder", true, 0), Guid = dataReader.GetGuid("EntryGuid", true, Guid.Empty), TrackId = dataReader.GetInt32("LiedID", true, 0), Name = dataReader.GetString("Lied", true, string.Empty), Duration = dataReader.GetTimeSpan("Dauer", true, TimeSpan.MinValue), AlbumId = dataReader.GetGuid("AlbumId", false, Guid.Empty), Artist = dataReader.GetString("Interpret", true, string.Empty) }; playlist.Entries.Add(entry); } } } } } finally { entityConnection.Close(); } } } return playlist; }
public PlaylistChangedEventArgs(Playlist playlist) { this.Playlist = playlist; }
protected virtual void AddSelectedToPlaylist(Playlist playlist) { }
public Playlist AppendToPlaylist(Playlist playlist) { if (playlist != null && playlist.Entries != null) { List<PlaylistEntry> entries = new List<PlaylistEntry>(playlist.Entries); using (TunesEntities tunesEntity = new TunesEntities(this.ConnectionString)) { if (tunesEntity != null) { int sortOrder = tunesEntity.playlistentries.Where(pe => pe.PlaylistId == playlist.Id).Count(); entries.ForEach((playlistEntry) => { if (playlistEntry != null) { tunesEntity.playlistentries.Add(new PlaylistEntryEntity { Guid = playlistEntry.Guid, LiedId = playlistEntry.TrackId, PlaylistId = playlist.Id, sortorder = sortOrder, Timestamp = DateTime.Now }); } }); tunesEntity.SaveChanges(); } } } return playlist = this.GetPlaylistById(playlist.Id, playlist.UserName); }
private void AddTracksToPlaylist(Playlist playlist, ObservableCollection<Track> tracks) { if (playlist != null && tracks != null) { foreach (var track in tracks) { if (track != null) { playlist.Entries.Add(new PlaylistEntry { PlaylistId = playlist.Id, TrackId = track.Id, Guid = Guid.NewGuid() }); } } this.AppendToPlaylist(playlist); } }
protected override void AddTracksToPlaylist(Playlist playlist) { if (playlist != null) { playlist.Entries.Clear(); playlist.Entries.Add(new PlaylistEntry { PlaylistId = playlist.Id, TrackId = this.CurrentTrack.Id, Guid = Guid.NewGuid() }); base.AddTracksToPlaylist(playlist); } }
protected override void AddSelectedToPlaylist(Playlist playlist) { if (playlist != null) { var selectedItems = this.SelectedItems; if (selectedItems != null) { var tracks = new ObservableCollection<Track>(selectedItems.Cast<Track>()); if (tracks != null) { this.AddTracksToPlaylist(playlist, tracks); } } } this.SelectedItems.Clear(); }
protected override void AddAllToPlaylist(Playlist playlist) { if (playlist != null) { var tracks = new ObservableCollection<Track>(this.Album.Tracks); if (tracks != null) { this.AddTracksToPlaylist(playlist, tracks); } } }
private void LoadData() { TunesUser user = this.m_accountService.User; if (user != null && !string.IsNullOrEmpty(user.UserName)) { try { var task = Task.Run(async () => await this.m_dataService.GetPlaylistByIdWithNumberOfEntries(this.PlaylistId, user.UserName)); task.Wait(); this.Playlist = task.Result; this.FormatNumberOfEntriesString(); } catch (Exception ex) { } } }
public Playlist GetPlaylistByIdWithNumberOfEntries(int playlistId, string userName) { Playlist playlist = null; if (string.IsNullOrEmpty(userName) == false) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("SELECT p.ListId, p.ListName, p.guid, COUNT(pe.PlaylistId) as Number "); stringBuilder.Append(" FROM tunesEntities.playlist AS p"); stringBuilder.Append(" LEFT JOIN tunesEntities.playlistentries AS pe ON p.ListId = pe.PlaylistId"); stringBuilder.Append(" WHERE p.ListId = @playlistId"); stringBuilder.Append(" AND p.User = @userName"); stringBuilder.Append(" GROUP BY p.listid, p.ListName, p.guid"); string sql = stringBuilder.ToString(); using (System.Data.EntityClient.EntityConnection entityConnection = new System.Data.EntityClient.EntityConnection(this.ConnectionString)) { try { entityConnection.Open(); using (EntityCommand entityCommand = entityConnection.CreateCommand()) { EntityParameter id = new EntityParameter(); id.ParameterName = "playlistId"; id.Value = playlistId; entityCommand.Parameters.Add(id); EntityParameter user = new EntityParameter(); user.ParameterName = "userName"; user.Value = userName; entityCommand.Parameters.Add(user); entityCommand.CommandText = sql; // Execute the command. using (EntityDataReader dataReader = entityCommand.ExecuteReader(System.Data.CommandBehavior.SequentialAccess)) { if (dataReader.Read() == true) { playlist = new Playlist { Id = dataReader.GetInt32("ListId", false, 0), Name = dataReader.GetString("ListName", false, string.Empty), Guid = dataReader.GetGuid("guid", false, Guid.Empty), NumberEntries = dataReader.GetInt32("Number", false, 0) }; } } } } catch(Exception ex) { } finally { entityConnection.Close(); } } } return playlist; }
protected virtual void AddAllToPlaylist(Playlist playlist) { }
public Playlist InsertPlaylist(Playlist playlist) { if (playlist != null) { PlaylistEntity entity = new PlaylistEntity { ListId = playlist.Id, ListName = playlist.Name, User = playlist.UserName, guid = playlist.Guid.ToString(), Timestamp = DateTime.Now }; using (TunesEntities tunesEntity = new TunesEntities(this.ConnectionString)) { PlaylistEntity playlistEntity = tunesEntity.playlist.FirstOrDefault(pl => pl.ListId == playlist.Id); if (playlistEntity == null) { if (tunesEntity.playlist.FirstOrDefault( pl => string.Compare(pl.ListName, entity.ListName) == 0 && string.Compare(pl.User, entity.User) == 0) != null) { string playlistExistsExceptionMessage = string.Format(CultureInfo.InvariantCulture, SRResources.PlaylistExistsException, playlist.Name); throw new PlaylistExistsException(playlistExistsExceptionMessage); } tunesEntity.playlist.Add(entity); } tunesEntity.SaveChanges(); playlist = new Playlist { Id = entity.ListId, Name = entity.ListName, UserName = entity.User, Guid = new Guid(entity.guid) }; } } return playlist; }
private void AddToPlaylist(Playlist playlist, InsertMode insertMode) { if (playlist != null) { switch (insertMode) { case InsertMode.All: this.AddAllToPlaylist(playlist); break; default: this.AddSelectedToPlaylist(playlist); break; } } }
public bool UpdatePlaylistEntries(Playlist playlist) { bool hasUpdated = false; if (playlist != null && playlist.Entries != null) { List<PlaylistEntry> entries = new List<PlaylistEntry>(playlist.Entries); using (TunesEntities tunesEntity = new TunesEntities(this.ConnectionString)) { if (tunesEntity != null) { var entr = tunesEntity.playlistentries.Where((e) => e.PlaylistId == playlist.Id).ToList(); entr.ForEach((e) => { if (e != null) { tunesEntity.playlistentries.Remove(e); } }); foreach (var e in playlist.Entries) { if (e != null) { PlaylistEntryEntity entity = new PlaylistEntryEntity { Guid = e.Guid, LiedId = e.TrackId, PlaylistId = playlist.Id, Timestamp = DateTime.Now, sortorder = e.SortOrder }; tunesEntity.playlistentries.Add(entity); } } tunesEntity.SaveChanges(); hasUpdated = true; } } } return hasUpdated; }
protected override void AddAllToPlaylist(Playlist playlist) { if (playlist != null) { this.AddEntriesToPlaylist(playlist, this.Entries); } }
public Playlist[] GetPlaylistsByUserName(string userName, int limit) { Playlist[] playlists = null; if (!string.IsNullOrEmpty(userName)) { bool hasLimit = false; if (limit > 0) { hasLimit = true; } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("SELECT p.ListId, p.ListName, p.User, p.guid FROM tunesEntities.playlist AS p"); stringBuilder.Append(" WHERE p.User = @userName"); stringBuilder.Append(" ORDER BY p.ListName"); if (hasLimit) { stringBuilder.Append(" LIMIT @limit "); } string sql = stringBuilder.ToString(); using (System.Data.EntityClient.EntityConnection entityConnection = new System.Data.EntityClient.EntityConnection(this.ConnectionString)) { try { entityConnection.Open(); using (EntityCommand entityCommand = entityConnection.CreateCommand()) { EntityParameter user = new EntityParameter(); user.ParameterName = "userName"; user.Value = userName; entityCommand.Parameters.Add(user); EntityParameter limitParam = new EntityParameter(); limitParam.ParameterName = "limit"; limitParam.Value = limit; entityCommand.Parameters.Add(limitParam); List<Playlist> playlistCollection = null; entityCommand.CommandText = sql; // Execute the command. using (EntityDataReader dataReader = entityCommand.ExecuteReader(System.Data.CommandBehavior.SequentialAccess)) { // Start reading results. while (dataReader.Read()) { if (playlistCollection == null) { playlistCollection = new List<Playlist>(); } Playlist playlist = new Playlist { Id = dataReader.GetInt32("ListId", false, 0), Name = dataReader.GetString("ListName", false, string.Empty), UserName = dataReader.GetString("User", false, string.Empty), Guid = dataReader.GetGuid("guid", true, Guid.Empty) }; playlistCollection.Add(playlist); } } if (playlistCollection != null) { playlists = playlistCollection.ToArray(); } } } finally { entityConnection.Close(); } } } return playlists; }
protected override void AddSelectedToPlaylist(Playlist playlist) { if (playlist != null) { var selectedItems = this.SelectedItems; if (selectedItems != null) { var playlistEntries = new ObservableCollection<PlaylistEntry>(selectedItems.Cast<PlaylistEntry>()); if (playlistEntries != null) { this.AddEntriesToPlaylist(playlist, playlistEntries); } } } this.SelectedItems.Clear(); }
protected override void AddTracksToPlaylist(Playlist playlist) { if (playlist != null) { var playlistEntries = this.SelectedEntries; if (playlistEntries.Count == 0) { playlistEntries = this.Entries; } if (playlistEntries != null) { foreach (var entry in playlistEntries) { if (entry != null) { playlist.Entries.Add(new PlaylistEntry { PlaylistId = playlist.Id, TrackId = entry.TrackId, Guid = Guid.NewGuid() }); } } } base.AddTracksToPlaylist(playlist); } }
private void SaveNewPlaylist() { if (!string.IsNullOrEmpty(this.PlaylistName)) { this.ErrorMessage = string.Empty; TunesUser user = this.m_accountService.User; if (user != null && !string.IsNullOrEmpty(user.UserName)) { Playlist playlist = new Playlist { Name = this.PlaylistName, UserName = user.UserName, Guid = Guid.NewGuid() }; try { var task = Task.Run(async () => await this.m_dataService.InsertPlaylist(playlist)); task.Wait(); this.ErrorMessage = string.Empty; this.PlaylistName = string.Empty; if (this.PlaylistInserted != null) { this.PlaylistInserted(this, new PlaylistChangedEventArgs(task.Result)); } this.IsOpen = false; } catch (AggregateException aggregateException) { foreach (var innerException in aggregateException.Flatten().InnerExceptions) { PlaylistExistsException playlistExistsException = innerException as PlaylistExistsException; if (playlistExistsException != null) { this.ErrorMessage = string.Format(CultureInfo.CurrentCulture, this.m_resourceService.GetString("IDS_NewPlaylistDialog_PlayListAlreadyExistsExceptionMessage"), this.PlaylistName); return; } } } } } }