public ActionResult Create(Participant participant) { ViewBag.DanceClasses = db.Classes.ToList(); var danceclassId = Convert.ToInt32(Request["danceclass"]); try { participant.DanceClass = db.Classes.Single(c => c.Id == danceclassId); participant.Paid = false; // Ensure noone hijacks this variable participant.Guid = Guid.NewGuid(); if (ClassHasSpace(participant)) { participant.Status = ParticipantStatus.AwaitingPayment; TempData["Message"] = "Successfully registered participant :) Please check your inbox"; MailService.SendRegistrationConfirmed(participant.Guid.ToString(), participant.Mail); } else { participant.Status = ParticipantStatus.PutInWaitingList; TempData["Message"] = "The selected class was full, you've been put in the waiting list."; } TempData["Message"] += "<p>Go <a href=\"/Competition/SignUp/" + participant.Guid.ToString() + "\">here</a> to sign up for competitions</p>"; db.Participants.Add(participant); db.SaveChanges(); } catch (Exception) { TempData["Message"] = "Something went wrong, did you fill the form correctly?"; } return RedirectToAction("RegistryComplete"); }
private bool ClassHasSpace(Participant participant) { var registered = db.Participants.Count(p => p.DanceClass.Id == participant.DanceClass.Id); var limit = db.Classes.Single(c => c.Id == participant.DanceClass.Id).Limit; return registered < limit; }
public ActionResult Edit(Participant participant) { if (ModelState.IsValid) { db.Entry(participant).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(participant); }