コード例 #1
0
        // 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));
        }
コード例 #2
0
        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));
        }