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"));
        }
Example #2
0
        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);
        }