private void PopulateTagsData(Course course) { var allTags = db.Tags; var coursesTags = new HashSet<int>(course.CourseTags.Select(t => t.TagID)); var viewModel = new List<AssignedTagData>(); foreach (var tag in allTags) { viewModel.Add(new AssignedTagData { TagID = tag.TagID, TagName = tag.Name, Assigned = coursesTags.Contains(tag.TagID) }); } ViewBag.Tags = viewModel; }
public void UpdateCourseTags(string[] selectedTags, Course courseToUpdate) { if (selectedTags == null) { courseToUpdate.CourseTags = new List<Tag>(); return; } var selectedTagsHS = new HashSet<string>(selectedTags); var courseTags = new HashSet<int>(courseToUpdate.CourseTags.Select(t => t.TagID)); foreach (var tag in db.Tags) { if (selectedTagsHS.Contains(tag.TagID.ToString())) { if (!courseTags.Contains(tag.TagID)) { courseToUpdate.CourseTags.Add(tag); } } else { if (courseTags.Contains(tag.TagID)) { courseToUpdate.CourseTags.Remove(tag); } } } }