示例#1
0
        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");
        }
示例#2
0
 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;
 }
示例#3
0
 public ActionResult Edit(Participant participant)
 {
     if (ModelState.IsValid)
     {
         db.Entry(participant).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     return View(participant);
 }