public void PopulateAssignedGenreData(Bondane_Carmen_ProiectContext context, Album album) { var allGenres = context.Genre; var albumGenres = new HashSet <int>( album.AlbumGenres.Select(c => c.AlbumID)); AssignedGenreDataList = new List <AssignedGenreData>(); foreach (var gen in allGenres) { AssignedGenreDataList.Add(new AssignedGenreData { GenreID = gen.ID, Name = gen.GenreName, Assigned = albumGenres.Contains(gen.ID) }); } }
public void UpdateAlbumGenres(Bondane_Carmen_ProiectContext context, string[] selectedGenres, Album albumToUpdate) { if (selectedGenres == null) { albumToUpdate.AlbumGenres = new List <AlbumGenre>(); return; } var selectedGenresHS = new HashSet <string>(selectedGenres); var albumGenres = new HashSet <int> (albumToUpdate.AlbumGenres.Select(c => c.Genre.ID)); foreach (var gen in context.Genre) { if (selectedGenresHS.Contains(gen.ID.ToString())) { if (!albumGenres.Contains(gen.ID)) { albumToUpdate.AlbumGenres.Add( new AlbumGenre { AlbumID = albumToUpdate.ID, GenreID = gen.ID }); } } else { if (albumGenres.Contains(gen.ID)) { AlbumGenre courseToRemove = albumToUpdate .AlbumGenres .SingleOrDefault(i => i.GenreID == gen.ID); context.Remove(courseToRemove); } } } }