public ActionResult CreateRequest(SupervisionRequestModel model) { var user = GetCurrentUser(); var supervision = Db.Activities.OfType <Supervision>().SingleOrDefault(x => x.Id == model.Supervision.Id); // hat schon eine Anfrage bei diesem Angebot if (supervision.Occurrence.Subscriptions.Any(x => x.UserId.Equals(user.Id))) { // Schon eingetragen // Fehlermeldung: da sind sie schon drin return(RedirectToAction("Index", "Dashboard")); } // Lehrende sollten sehen können, wo jemand eingetragen ist // Die Ablehnungs Mails sind dann Nachweis für ein "Nichtfinden" var subscription = new OccurrenceSubscription { UserId = user.Id, SubscriberRemark = model.Description, TimeStamp = DateTime.Now, OnWaitingList = true, IsConfirmed = false, Occurrence = supervision.Occurrence }; Db.Subscriptions.Add(subscription); Db.SaveChanges(); // EMail versenden // Mail an Betreuer if (supervision.Owners.Any()) { var member = supervision.Owners.First().Member; var hostUser = GetUser(member.UserId); var mailModel = new ThesisRequestMailModel { Supervision = supervision, Request = subscription, Requester = user, // der anfragende Student User = hostUser, // der Betreuuer }; var mail = new MailController(); mail.ThesisRequestEMail(mailModel).Deliver(); } return(RedirectToAction("Index", "Dashboard")); }