From ba7bfaabc530efd23e327fb3eb61ca72027384d1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 21 May 2017 09:53:59 -0400 Subject: disqualification --- Project-Unite/Controllers/ContestsController.cs | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'Project-Unite/Controllers') diff --git a/Project-Unite/Controllers/ContestsController.cs b/Project-Unite/Controllers/ContestsController.cs index fd0c39f..a99b342 100644 --- a/Project-Unite/Controllers/ContestsController.cs +++ b/Project-Unite/Controllers/ContestsController.cs @@ -121,6 +121,41 @@ namespace Project_Unite.Controllers } + [RequiresAdmin] + public ActionResult Disqualify(string id) + { + var db = new ApplicationDbContext(); + var c = db.ContestEntries.FirstOrDefault(x => x.Id == id); + if (c == null) + return new HttpStatusCodeResult(404); + var model = new DisqualifySubmissionViewModel(); + model.Entry = id; + return View(model); + } + + [RequiresAdmin] + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Disqualify(DisqualifySubmissionViewModel model) + { + if (!ModelState.IsValid) + return View(model); + var db = new ApplicationDbContext(); + var e = db.ContestEntries.FirstOrDefault(x => x.Id == model.Entry); + if (e == null) + return new HttpStatusCodeResult(404); + e.Disqualified = true; + e.DisqualifiedBy = User.Identity.GetUserId(); + e.DisqualifiedReason = model.Reason; + db.SaveChanges(); + + NotificationDaemon.NotifyUser(User.Identity.GetUserId(), e.AuthorId, "Submission disqualified.", $@"We have disqualified your contest submission ""{e.Name}"". + +Reason: {e.DisqualifiedReason}"); + + return RedirectToAction("ViewSubmission", new { id = model.Entry }); + } + public ActionResult RemoveVote(string id) { string uid = User.Identity.GetUserId(); -- cgit v1.2.3