public void PopulateAssignedCategoryData(Racz_Kathleen_Lab8BContext context, Book book) { var allCategories = context.Category; var bookCategories = new HashSet <int>( book.bookCategories.Select(c => c.BookID)); AssignedCategoryDataList = new List <AssignedCategoryData>(); foreach (var cat in allCategories) { AssignedCategoryDataList.Add(new AssignedCategoryData { CategoryID = cat.ID, Name = cat.CategoryName, Assigned = bookCategories.Contains(cat.ID) }); } }
public void UpdateBookCategories(Racz_Kathleen_Lab8BContext context, string[] selectedCategories, Book bookToUpdate) { if (selectedCategories == null) { bookToUpdate.bookCategories = new List <BookCategory>(); return; } var selectedCategoriesHS = new HashSet <string>(selectedCategories); var bookCategories = new HashSet <int> (bookToUpdate.bookCategories.Select(c => c.Category.ID)); foreach (var cat in context.Category) { if (selectedCategoriesHS.Contains(cat.ID.ToString())) { if (!bookCategories.Contains(cat.ID)) { bookToUpdate.bookCategories.Add( new BookCategory { BookID = bookToUpdate.ID, CategoryID = cat.ID }); } } else { if (bookCategories.Contains(cat.ID)) { BookCategory courseToRemove = bookToUpdate .bookCategories .SingleOrDefault(i => i.CategoryID == cat.ID); context.Remove(courseToRemove); } } } }