// 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))); }
public ActionResult Create([Bind(Include = "Id,Keyword,MaxScore,Type,JudgeNotes,Published,Collapsible")] Stunt stunt) { if (ModelState.IsValid) { // Créer une traduction par défaut et rediriger var st = new StuntTranslation(); stunt.Translations = new Collection <StuntTranslation>() { st }; db.Stunts.Add(stunt); db.SaveChanges(); // Il faut aussi l'ajouter/assigner aux équipes déjà inscrites foreach (var team in db.Teams) { var ts = new TeamStunt() { Stunt = stunt, Team = team }; db.TeamStunts.Add(ts); } db.SaveChanges(); return(RedirectToAction("Edit", "StuntTranslation", new { id = st.Id })); } return(View(stunt)); }
// 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,Score,JudgeNotes,JudgeFeedback,Status")] TeamStunt teamstunt) { if (ModelState.IsValid) { // Get previous stunt object var teamStunt = db.TeamStunts.Find(teamstunt.Id); teamStunt.DateUpdated = DateTime.Now; teamStunt.Score = teamstunt.Score; teamStunt.Status = teamstunt.Status; teamStunt.JudgeFeedback = teamstunt.JudgeFeedback; teamStunt.JudgeNotes = teamstunt.JudgeNotes; db.Entry(teamStunt).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(teamstunt)); }
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))); }
public ActionResult DataImport(string data) { var d = JsonConvert.DeserializeObject <List <Stunt> >(data); db.Stunts.AddRange(d); db.SaveChanges(); // Create TeamStunts for the teams foreach (var stunt in d) { foreach (var team in db.Teams) { var ts = new TeamStunt() { Stunt = stunt, Team = team }; db.TeamStunts.Add(ts); } } db.SaveChanges(); return(RedirectToAction("IndexAdmin")); }
public static TeamStunt Globalize(this TeamStunt teamStunt, string language) { teamStunt.Stunt = teamStunt.Stunt.Globalize(language); return(teamStunt); }