summaryrefslogtreecommitdiff
path: root/Project-Unite/Controllers
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-05-21 09:53:59 -0400
committerMichael <[email protected]>2017-05-21 09:53:59 -0400
commitba7bfaabc530efd23e327fb3eb61ca72027384d1 (patch)
treed3ed302bb7787585aab929c011a6759aa8d7c833 /Project-Unite/Controllers
parent746cb59f560fff853c5129b1ec3e217543a4de42 (diff)
downloadproject-unite-ba7bfaabc530efd23e327fb3eb61ca72027384d1.tar.gz
project-unite-ba7bfaabc530efd23e327fb3eb61ca72027384d1.tar.bz2
project-unite-ba7bfaabc530efd23e327fb3eb61ca72027384d1.zip
disqualification
Diffstat (limited to 'Project-Unite/Controllers')
-rw-r--r--Project-Unite/Controllers/ContestsController.cs35
1 files changed, 35 insertions, 0 deletions
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}"".
+
+<strong>Reason:</strong> {e.DisqualifiedReason}");
+
+ return RedirectToAction("ViewSubmission", new { id = model.Entry });
+ }
+
public ActionResult RemoveVote(string id)
{
string uid = User.Identity.GetUserId();