public async Task <IActionResult> PutPlaylistTrack(long id, PlaylistTrack playlistTrack) { if (id != playlistTrack.PlaylistId) { return(BadRequest()); } _context.Entry(playlistTrack).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PlaylistTrackExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public PlaylistTrack ToPOCO() { PlaylistTrack playlistTrack = new PlaylistTrack(); playlistTrack.Track = track.ToPOCO(); return(playlistTrack); }
}//eom public void DeleteTracks(string username, string playlistname, List <int> trackstodelete) { using (var context = new ChinookContext()) { Playlist exists = (from x in context.Playlists where x.UserName.Equals(username, StringComparison.OrdinalIgnoreCase) && x.Name.Equals(playlistname, StringComparison.OrdinalIgnoreCase) select x).FirstOrDefault(); if (exists == null) { throw new Exception("Playlist has been removed from the database."); } else { var trackskept = exists.PlaylistTracks.Where(tr => !trackstodelete.Any(tod => tod == tr.TrackId)).Select(tr => tr); PlaylistTrack item = null; foreach (int dtrack in trackstodelete) { item = exists.PlaylistTracks.Where(dx => dx.TrackId == dtrack).FirstOrDefault(); exists.PlaylistTracks.Remove(item); } int newrownumber = 1; foreach (var trackkept in trackskept) { trackkept.TrackNumber = newrownumber; context.Entry(trackkept).Property(y => y.TrackNumber).IsModified = true; newrownumber++; } context.SaveChanges(); } } }//eom
public void DeletePlaylistTrack(long playlistTrackId) { PlaylistTrack track = context.PlaylistTracks.Single(f => f.Id == playlistTrackId); context.PlaylistTracks.Remove(track); context.SaveChanges(); }
public void AddInstantTrack(int id) { Console.Write("Show list of tracks? Y/N: "); string yn = Console.ReadLine(); if (yn == "Y" || yn == "y") { ShowTracks(); } Console.Write("Type the track Id you want to add: "); int chosenTrackId = int.Parse(Console.ReadLine()); PlaylistTrack playlisttrack = new PlaylistTrack(); playlisttrack.TrackId = chosenTrackId; playlisttrack.PlaylistId = id; using (everyloopContext context = new everyloopContext()) { context.PlaylistTracks.Add(playlisttrack); context.SaveChanges(); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"\nTrackId: {playlisttrack.TrackId} has been added\n"); Console.ForegroundColor = ConsoleColor.Gray; }
public void DeletePlaylist() { ShowPlayLists(); Console.WriteLine(); Console.Write("Enter the Id of the playlist you want to remove: "); int id = int.Parse(Console.ReadLine()); using (everyloopContext context = new everyloopContext()) { PlaylistTrack playlist = context.PlaylistTracks.FirstOrDefault(x => x.PlaylistId == id); var list = context.PlaylistTracks.Where(x => x.PlaylistId == playlist.PlaylistId); foreach (var PlaylistItem in list) { context.PlaylistTracks.Remove(PlaylistItem); } context.SaveChanges(); context.PlaylistTracks.Attach(playlist); context.PlaylistTracks.Remove(playlist); DeletePlaylist2(id); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("The playlist " + playlist.PlaylistId + " was removed"); Console.ForegroundColor = ConsoleColor.Gray; } }
public IHttpActionResult PutPlaylistTrack(int id, PlaylistTrack playlistTrack) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != playlistTrack.Id) { return(BadRequest()); } db.Entry(playlistTrack).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PlaylistTrackExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public void SavePlayList(int argplaylistid, List <UserPlayListTrack> argplaylist) { PlaylistTrack argPlaylistTrack = null; using (var context = new ChinookSystemContext()) { //Delete from PlaylistTracks table all items related to argplaylistid //presently in the db. List <PlaylistTrack> playlistOld = (from x in context.PlaylistTracks where x.PlaylistId == argplaylistid select x).ToList(); foreach (PlaylistTrack item in playlistOld) { context.PlaylistTracks.Remove(item); } //Add to PlaylistTracks table the items from argplaylist collection //argument and relate them to playlistid. foreach (UserPlayListTrack item in argplaylist) { //Instantiate a new entity type. argPlaylistTrack = new PlaylistTrack(); argPlaylistTrack.PlaylistId = argplaylistid; argPlaylistTrack.TrackId = item.TrackID; argPlaylistTrack.TrackNumber = item.TrackNumber; context.PlaylistTracks.Add(argPlaylistTrack); } context.SaveChanges(); } }
}//eom public List <UserPlaylistTrack> Add_TrackToPLaylist(string playlistname, string username, int trackID) { using (var context = new ChinookContext()) { // Part 1: Handle Playlist Record #region Playlist Record // Query for playlistID var exists = (from x in context.Playlists where x.UserName.Equals(username) && x.Name.Equals(playlistname) select x).FirstOrDefault(); // Initialize the trackNumber for the track going into PlaylistTracks int trackNumber = 0; // I will need to creat an instanse of PlaylistTrack PlaylistTrack newTrack = null; // Determine if this is an addition to an existing playlist or if it is a new playlist if (exists == null) { // This is a new playlist exists = new Playlist(); exists.Name = playlistname; exists.UserName = username; exists = context.Playlists.Add(exists); trackNumber = 1; } else { // Playlist already exists, must find the new TrackNumber // TrackNumber will be equal to .Count()+1 trackNumber = exists.PlaylistTracks.Count() + 1; // In our example, tracks only exist once on each playlist newTrack = exists.PlaylistTracks.SingleOrDefault(x => x.TrackId == trackID); // This will be null if the track is NOT on the playlist tracks if (newTrack != null) { throw new Exception("Playlist already contains this track"); } } #endregion // Part 2: Handle the track for PlaylistTrack #region PlaylistTrack // Use navigation to .Add the new track to the PlaylistTrack newTrack = new PlaylistTrack(); newTrack.TrackId = trackID; newTrack.TrackNumber = trackNumber; // NOTE: The pKey for PlaylistID may not yet exist, using navigation one can let HashSet handle the PlayListID pKey exists.PlaylistTracks.Add(newTrack); // Physically commit work to the database context.SaveChanges(); #endregion return(List_TracksForPlaylist(playlistname, username)); } }//eom
public CurrentState(RemotedWindowsMediaPlayer remotePlayer) { IWMPMedia current_item = remotePlayer.getCurrentMediaItem(); IWMPPlaylist playlist = remotePlayer.getNowPlaying(); int index = -1; if (playlist != null && playlist.count > 0) { for (int j = 0; j < playlist.count; j++) { IWMPMedia item = playlist.get_Item(j); if (item != null && item.get_isIdentical(current_item)) { index = j; } } } if (index >= 0) { current_track = new PlaylistTrack(index, current_item); } shuffle_mode = remotePlayer.isShuffleModeEnabled(); play_state = getTruncatedPlayState(remotePlayer.getPlayState()); VolumeCmd volumeCmd = new VolumeCmd(); volume = volumeCmd.getVolume(); is_muted = volumeCmd.isMuted(); }
private static void Add(MusicDataContext db, PlaylistTrack track) { Add(db, new List <PlaylistTrack>() { track }); }
public static void Add(PlaylistTrack track) { AddAll(new List <PlaylistTrack>() { track }); }
private static void createTrack(Playlist playlist, Location location, int trackNo, HashSet <int> expectedPlaylistTrackKeys) { var track = new Track("Filename" + trackNo, "fullFileName" + trackNo, location, null, null, null, null, null, null, null, null, null, null, null, null, null, "titleArtists" + trackNo); var playlistTrack = new PlaylistTrack(playlist, track, trackNo); expectedPlaylistTrackKeys.Add(track.Key); }
public ListingTrack(PlaylistTrack pt, int index = -1) { PlaylistTrack = pt; FullTrack = pt.Track; Index = index; Id = pt.Track.Id; }
public void GetPlaylistTracksTest() { ICRUDTestDBContextProvider cRUDTestDBContextProvider = new CRUDTestDBContextProvider(Guid.NewGuid().ToString()); var context = cRUDTestDBContextProvider.GetContext(); var track = new Track { TrackId = 2 }; var track2 = new Track { TrackId = 1 }; var playlistTrack = new PlaylistTrack { PlaylistId = 1, TrackId = 1 }; var playlist = new Playlist { PlaylistId = 1 }; context.Add(track); context.Add(track2); context.Add(playlistTrack); context.Add(playlist); context.SaveChanges(); TrackBE trackBE = new TrackBE(cRUDTestDBContextProvider); TrackBE trackBE2 = new TrackBE(cRUDTestDBContextProvider); trackBE.Load(1); trackBE2.Load(2); var playlistTrackBECollection = trackBE.GetPlaylistTracks(); Assert.IsTrue(playlistTrackBECollection.First().GetType() == typeof(PlaylistTrackBE)); Assert.IsTrue(playlistTrackBECollection.First().Id == (1, 1)); Assert.IsTrue(trackBE2.GetPlaylistTracks().IsNullOrEmpty()); }
public async Task<PlaylistTrack> AddAsync(PlaylistTrack newPlaylistTrack, CancellationToken ct = default) { _context.PlaylistTrack.Add(newPlaylistTrack); await _context.SaveChangesAsync(ct); return newPlaylistTrack; }
private void AddTrackButton_Click(object sender, EventArgs e) { using (var db = new everyloopContext()) { var trackName = db.Tracks.SingleOrDefault(x => x.Name.ToLower() == TrackNameBox.Text.ToLower()); if (trackName == null) { MessageBox.Show("Could not find track", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var id = Convert.ToInt32(TrackPlaylistBox.SelectedValue); var trackNameId = trackName.TrackId; PlaylistTrack playlistTrack = db.PlaylistTracks.SingleOrDefault(x => x.TrackId == trackNameId && x.PlaylistId == id); if (playlistTrack != null) { MessageBox.Show("Track already added", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } db.PlaylistTracks.Add(new PlaylistTrack { PlaylistId = id, TrackId = trackNameId }); db.SaveChanges(); } }
public void Add_TrackToPlayList(string playlistname, string userName, int trackid) { using (var context = new ChinookContext()) { //does the playlist already exist? Playlist exists = (from x in context.Playlists where x.UserName.Equals(userName) && x.Name.Equals(playlistname) select x).FirstOrDefault(); int tracknumber = 0; PlaylistTrack newTrack = null; if (exists == null) { //create the new Playlist exists = new Playlist(); exists.Name = playlistname; exists.UserName = userName; exists = context.Playlists.Add(exists); tracknumber = 1; } else { //the playlist already exists //and the query has given us the instance //of that playlist from the database //generate the next tracknumber tracknumber = exists.PlaylistTracks.Count() + 1; //on our sample, playlist tracks for a playlist are unique newTrack = exists.PlaylistTracks.SingleOrDefault(x => x.TrackId == trackid); if (newTrack != null) { throw new Exception("Playlist already has requested track."); } } //this is a boom test //remove after testing //if (playlistname.Equals("Boom")) //{ // throw new Exception("forced abort, check DB for Boom playlist"); //} //you have a playlist //you know the track will be unique //create the new track newTrack = new PlaylistTrack(); newTrack.TrackId = trackid; newTrack.TrackNumber = tracknumber; //since I am using the navigation property of the //playlist to get to playlisttrack //the SaveChanges will fill the playlistid //from either the HashSet of from the existing instance exists.PlaylistTracks.Add(newTrack); context.SaveChanges(); } }
}//eom public void Add_TrackToPLaylist(string playlistname, string username, int trackid) { using (var context = new ChinookContext()) { int tracknumber = 0; PlaylistTrack newTrack = null; //code to go here Playlist exists = (from x in context.Playlists where x.Name.Equals(playlistname) && x.UserName.Equals(username) select x).FirstOrDefault(); if (exists == null) { //new playlist exists = new Playlist(); exists.Name = playlistname; exists.UserName = username; context.Playlists.Add(exists); tracknumber = 1; } else { //existing playlist newTrack = (from x in context.PlaylistTracks where x.Playlist.Name.Equals(playlistname) && x.Playlist.UserName.Equals(username) && x.TrackId == trackid select x).FirstOrDefault(); if (newTrack == null) { tracknumber = (from x in context.PlaylistTracks where x.Playlist.Name.Equals(playlistname) && x.Playlist.UserName.Equals(username) select x.TrackNumber).Max(); tracknumber++; } else { //Best for single errors //throw new Exception("Song already exists on playlist. Choose something else."); //Multiple Errors errors.Add("Song already exists on playlist. Choose something else."); } } if (errors.Count > 0) { throw new BusinessRuleException("Adding Track", errors); } newTrack = new PlaylistTrack(); //when you do an .Add(xxx) to a entity, the record is only staged AND NOT on the database //ANY expected pkey value DOES NOT yet exist //newTrack.PlaylistId = exists.PlaylistId; newTrack.TrackId = trackid; newTrack.TrackNumber = tracknumber; exists.PlaylistTracks.Add(newTrack); context.SaveChanges(); } }//eom
public IActionResult AddPlaylistTrack(int TrackId, int PlaylistId) { var playlistTracks = new PlaylistTrack[] { new PlaylistTrack { PlaylistId = 1, TrackId = 13 }, new PlaylistTrack { PlaylistId = 1, TrackId = 14 }, new PlaylistTrack { PlaylistId = 1, TrackId = 5 }, new PlaylistTrack { PlaylistId = 1, TrackId = 6 }, new PlaylistTrack { PlaylistId = 1, TrackId = 7 }, new PlaylistTrack { PlaylistId = 1, TrackId = 8 }, new PlaylistTrack { PlaylistId = 1, TrackId = 9 }, new PlaylistTrack { PlaylistId = 1, TrackId = 10 }, new PlaylistTrack { PlaylistId = 1, TrackId = 11 }, new PlaylistTrack { PlaylistId = 1, TrackId = 12 }, }; // var playlistTracks = new PlaylistTrack[] // { // new PlaylistTrack{PlaylistId=1, TrackId=1}, // new PlaylistTrack{PlaylistId=1, TrackId=2}, // new PlaylistTrack{PlaylistId=2, TrackId=1}, // new PlaylistTrack{PlaylistId=1, TrackId=3}, // }; foreach (PlaylistTrack pt in playlistTracks) { _context.PlaylistTracks.Add(pt); } // System.Console.WriteLine(playlistTrack); // _context.PlaylistTracks.Add(playlistTrack); _context.SaveChanges(); var onePlaylist = _context.Playlists.Include(d => d.PlaylistTracks).ThenInclude(t => t.Track).SingleOrDefault(w => w.PlaylistId == 1); ViewBag.onePlaylist = onePlaylist; return(View("Webplayer")); }
public PlaylistTrack Create() { var entity = new PlaylistTrack(); entity.PlaylistID = this.PlaylistID; entity.TrackID = this.TrackID; return(entity); }
/// <summary> /// Merge all values from one Entity into another one. /// </summary> /// <param name="source">Source Entity. Will be copied to the target.</param> /// <param name="target">Target Entity. Will receive the values from the source.</param> /// <returns>void.</returns> public static void Merge(PlaylistTrack source, PlaylistTrack target) { // this method merges 2 Entities. #region Merge Values target.PlaylistId = source.PlaylistId; target.TrackId = source.TrackId; #endregion }
public static void SetPlaylist(PlaylistTrack track) { MusicDataContext.WithSubmit(db => { Clear(db); Add(db, track); SetIndex(db, 0); }); }
public IActionResult Post(PlaylistTrack playlistTrack) { if (playlistTrack == null) { return(BadRequest()); } return(Ok(_unit.PlaylistTracks.Add(playlistTrack))); }
public TrackViewModel(IContentManagerService contentManagerService, IMusicPlayerService musicPlayerService, IWebService webService, PlaylistTrack playlistTrack) { _contentManagerService = contentManagerService; _musicPlayerService = musicPlayerService; _webService = webService; PlaylistTrack = playlistTrack; }
public IActionResult Post([FromBody] PlaylistTrack playlistTrack) { if (ModelState.IsValid) { return(Ok(_unit.PlaylistTracks.Insert(playlistTrack))); } return(BadRequest(ModelState)); }
}//eom public List <UserPlaylistTrack> Add_TrackToPLaylist(string playlistname, string username, int trackid) { using (var context = new ChinookContext()) { //code to go here //create a new pkey value (parent) //create a child of the pkey. CAN'T PARENT DOESN'T EXIST YET //DO NOT ENTER A SAVE CHANGE AFTER PARENT CREATION, THIS CREaTES 2 TRANSACTIONS INSTEAD OF JUST 1 //Playlist constructor uses HashSet, gives pseudo pkeys // //child creation uses navigation //SaveChange() // just do a query to determine playlist id var exists = (from x in context.Playlists where x.UserName == username && x.Name.Equals(playlistname) select x).FirstOrDefault(); //initialize the tracknumber for the track going info playlist tracks int tracknumber = 0; //i will need to create an instance of PlaylistTrack PlaylistTrack newtrack = null; //determine if this is an addition or a creation and addition if (exists == null) { exists = new Playlist(); exists.Name = playlistname; exists.UserName = username; exists = context.Playlists.Add(exists); tracknumber = 1; } else { //the playlist already exists //need to know the number of tracks currently on the list tracknumber = exists.PlaylistTracks.Count() + 1; //playlist can only have a track once per playlist newtrack = exists.PlaylistTracks.SingleOrDefault(x => x.TrackId == trackid); //this will be null if the track is not in the playlist if (newtrack != null) { throw new Exception("Playlist already has this track."); } } //END OF PLAYLIST HANDLING //BEGIN HANDLING TRACK FOR PLAYLIST //use navigation to add the new track to the playlist newtrack = new PlaylistTrack(); newtrack.TrackId = trackid; newtrack.TrackNumber = tracknumber; //NOTE the pkey for the playlistid may not exist yet. using navigation, one can let hashset handle the playlistid pkey // exists.PlaylistTracks.Add(newtrack); //physically commit your work to the database context.SaveChanges(); return(List_TracksForPlaylist(playlistname, username)); } }//eom
}//eom public List <UserPlaylistTrack> Add_TrackToPLaylist(string playlistname, string username, int trackid) { using (var context = new ChinookContext()) { //code to go here //PART ONE : HANDLE PLAYLIST RECORD //query to get playlistid var exists = (from x in context.Playlists where x.UserName.Equals(username) && x.Name.Equals(playlistname) select x).FirstOrDefault(); //initialize the tracknumber for the track going into PlaylistTracks int tracknumber = 0; //i will need to create an instance of PlaylistTrack PlaylistTrack newtrack = null; //determine if this is an addition to an existing list or // if a new list needs to be created if (exists == null) { //this is a new playlist //create the playlist exists = new Playlist(); exists.Name = playlistname; exists.UserName = username; exists = context.Playlists.Add(exists); tracknumber = 1; } else { //the playlist already exists //i need to know the number of tracks currently on the list //track number will be = count + 1 tracknumber = exists.PlaylistTracks.Count() + 1; //in our example, trakc exists only once on each playlist newtrack = exists.PlaylistTracks.SingleOrDefault(x => x.TrackId == trackid); //this will be null if the track is NOT on the playlist tracks if (newtrack != null) { throw new Exception("Playlist already has requested track"); } } //PART TWO: HANDLE THE TRACK FOR PLAYLIST TRACK //use navigation to .Add the new track to PlaylistTrack newtrack = new PlaylistTrack(); newtrack.TrackId = trackid; newtrack.TrackNumber = tracknumber; //NOTE: the pkey for PlaylistId may not yet exist //using navigation one can let HashSet handle the PlaylistId pkey exists.PlaylistTracks.Add(newtrack); //physically commit your woirk to the database\ context.SaveChanges(); return(List_TracksForPlaylist(playlistname, username)); } }//eom
public static PlaylistTrackViewModel Convert(PlaylistTrack playlistTrack) { var playlistTrackViewModel = new PlaylistTrackViewModel(); playlistTrackViewModel.PlaylistId = playlistTrack.PlaylistId; playlistTrackViewModel.TrackId = playlistTrack.TrackId; return(playlistTrackViewModel); }
public List <PlaylistModel> GetPlaylist(int page) { var playlist = new List <PlaylistModel>(); try { using (var context = new sparrow_dbEntities()) { var tracks = context.SPRW_TRACK.OrderByDescending(i => i.SPRW_TRACK_POPULAR_LIKE.Count).ThenBy(i => i.LAST_MAINT_TIME).Take(100); foreach (var track in tracks) { if (playlist.Exists(i => i.ArtistName == track.SPRW_ARTIST.NAME)) { var playlistItem = new PlaylistTrack { AlbumId = track.ALBUM_ID, AlbumName = track.SPRW_ALBUM != null ? track.SPRW_ALBUM.NAME : null, TrackId = track.TRACK_ID, PopIndex = track.SPRW_TRACK_POPULAR_LIKE.Count(i => i.DISLIKE_DATE > DateTime.Now.AddMonths(-6)) }; var firstOrDefault = playlist.FirstOrDefault(i => i.ArtistName == track.SPRW_ARTIST.NAME); if (firstOrDefault != null) { firstOrDefault.Tracks.Add(playlistItem); } } else { playlist.Add(new PlaylistModel { ArtistId = track.ARTIST_ID, ArtistName = track.SPRW_ARTIST.NAME, Genres = track.SPRW_ARTIST.SPRW_GENRE.Select(i => i.GENRE).ToList(), Tracks = new List <PlaylistTrack> { new PlaylistTrack { AlbumId = track.ALBUM_ID, AlbumName = track.SPRW_ALBUM != null ? track.SPRW_ALBUM.NAME : null, TrackId = track.TRACK_ID, PopIndex = track.SPRW_TRACK_POPULAR_LIKE.Count(i => i.DISLIKE_DATE > DateTime.Now.AddMonths(-6)) } } }); } } } return(playlist); } catch (Exception e) { throw e; } }