public async Task <IActionResult> addSongToPlaylist(int playlistId, int songId) { var playListModel = await _context.Playlists.SingleOrDefaultAsync(p => p.PlaylistId == playlistId); if (playListModel == null) { return(NotFound()); } var songModel = await _context.Songs.SingleOrDefaultAsync(s => s.SongId == songId); if (songModel == null) { return(NotFound()); } //check if the song is alreay in this playlist var song = playListModel.Songs.SingleOrDefault(s => s.SongId == songId); if (song == null) { Models.BridgeModel.PlaylistSongModel playlistSongModel = new Models.BridgeModel.PlaylistSongModel(); playlistSongModel.Playlist = playListModel; playlistSongModel.PlaylistId = playlistId; playlistSongModel.Song = songModel; playlistSongModel.SongId = songId; _context.Add(playlistSongModel); await _context.SaveChangesAsync(); } return(RedirectToAction("Display", "SongModels")); }
public ICollection <Models.BridgeModel.PlaylistSongModel> RandomSongsToPlaylist(ICollection <PlaylistModel> playlists, ICollection <SongModel> songs) { ICollection <Models.BridgeModel.PlaylistSongModel> ret = new List <Models.BridgeModel.PlaylistSongModel>(); for (int i = 0; i < songs.Count; i++) { int randNumPlaylistToAdd = random.Next(0, playlists.Count + 1); for (int j = 0; j < randNumPlaylistToAdd; j++) { int indexToAdd = random.Next(0, playlists.Count); PlaylistModel curPlaylist = playlists.ElementAt(indexToAdd); Models.BridgeModel.PlaylistSongModel temp = new Models.BridgeModel.PlaylistSongModel(); temp.PlaylistId = curPlaylist.PlaylistId; temp.SongId = songs.ElementAt(i).SongId; if (!CheckIfSongAlreadyInPlaylist(temp.SongId, temp.PlaylistId)) { ret.Add(temp); dbContext.Add(temp); } } } dbContext.SaveChanges(); return(ret); }