// GET: /TeamStunt/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TeamStunt teamstunt = db.TeamStunts.Find(id); if (teamstunt == null) { return(HttpNotFound()); } // Make sure the current user is registered, part of a team and have access to this stunt var userid = User.Identity.GetUserId(); var user = db.Users.Find(userid); if (user == null) { return(RedirectToAction("Login", "Account")); } if (user.Team == null) { return(RedirectToAction("Start", "Team")); } if (user.Team.TeamStunts.All(x => x.Id != id)) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } return(View(teamstunt.Globalize(Language))); }
// GET: /Judge/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TeamStunt teamstunt = db.TeamStunts.Find(id); if (teamstunt == null) { return(HttpNotFound()); } return(View(teamstunt.Globalize(Language))); }
public ActionResult Edit([Bind(Include = "Id,TeamNotes,Submission,Status")] TeamStunt teamstunt) { if (ModelState.IsValid) { // Get previous stunt object var teamStunt = db.TeamStunts.Find(teamstunt.Id); teamStunt.TeamNotes = teamstunt.TeamNotes; teamStunt.Submission = teamstunt.Submission; teamStunt.Status = teamstunt.Status; teamStunt.DateUpdated = DateTime.Now; // Special logic if it's a flag if (teamStunt.Stunt.Type == StuntTypeEnum.Flag && !string.IsNullOrEmpty(teamStunt.Stunt.JudgeNotes) && !string.IsNullOrEmpty(teamStunt.Submission)) { if (teamstunt.Submission == teamStunt.Stunt.JudgeNotes) { teamStunt.Score = teamStunt.Stunt.MaxScore; teamStunt.Status = TeamStuntStatusEnum.Done; } else { // Store the amount of failed tries int tries; int.TryParse(teamStunt.JudgeNotes, out tries); teamStunt.JudgeNotes = (++tries).ToString(); db.Entry(teamStunt); db.SaveChanges(); ModelState.AddModelError("Submission", "Wrong flag"); return(View(teamStunt.Globalize(Language))); } } db.Entry(teamStunt).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(teamstunt.Globalize(Language))); }