// GET: Competitions/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //Competition Competition = db.Competition.Find(id); var memberCompetition = new MemberCompetition { Competition = db.Competition.Include(i => i.Members).First(i => i.CompetitionId == id) }; if (memberCompetition.Competition == null) { return(HttpNotFound()); } var allmemberlist = db.Member.ToList(); memberCompetition.AllMembers = allmemberlist.Select(m => new SelectListItem { Text = m.FirstName, Value = m.MemberId.ToString() }); return(View(memberCompetition)); }
public ActionResult Edit(MemberCompetition memberCompetition) { if (memberCompetition == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ModelState.IsValid) { var competitionToUpdate = db.Competition .Include(c => c.Members).First(c => c.CompetitionId == memberCompetition.Competition.CompetitionId); if (TryUpdateModel(competitionToUpdate, "Competition", new string[] { "Name", "Location", "StartDate", "EndDate", "Description", "CompetitionId" })) { var newMembers = db.Member.Where( m => memberCompetition.SelectedMembers.Contains(m.MemberId)).ToList(); var updatedMembers = new HashSet <int>(memberCompetition.SelectedMembers); foreach (Member member in db.Member) { if (!updatedMembers.Contains(member.MemberId)) { competitionToUpdate.Members.Remove(member); } else { competitionToUpdate.Members.Add((member)); } } db.Entry(competitionToUpdate).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return(RedirectToAction("Index")); } return(View(memberCompetition)); }