예제 #1
0
        // 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)));
        }
예제 #2
0
        // 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)));
        }
예제 #3
0
        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)));
        }