public async Task <ActionResult> Selbstabmeldung(AbmeldungViewModel abmeldung, String accessToken) { // TODO: test Anmeldung anmeldungByToken = await _anmeldungRepository.GetByAccessTokenWithSchulungAsync(accessToken); if (anmeldungByToken == null) { return(NotFound("Die Anmeldung existiert nicht, vielleicht bereits abgemeldet?")); } var cantCancelReason = getCantCancelReason(anmeldungByToken); if (cantCancelReason != null) { ViewBag.cantCancelReason = cantCancelReason; return(View("SelbstmanagementError")); } // Just a safety check if (anmeldungByToken.anmeldungId != abmeldung.anmeldungId) { return(BadRequest()); } await _anmeldungRepository.Delete(anmeldungByToken); if (abmeldung.Nachricht == null || abmeldung.Nachricht.Trim() == "") { abmeldung.Nachricht = null; } var vorstand = Util.getVorstand(_context); await mailingHelper.GenerateAndSendAbmeldungMailAsync(anmeldungByToken, anmeldungByToken.Schulung, vorstand); // Sende Mail an Dozenten falls Nachricht existiert oder wenn es nach Anmeldefrist ist if (abmeldung.Nachricht != null || anmeldungByToken.Schulung.Anmeldefrist < DateTime.Now) { await mailingHelper.GenerateAndSendAbsageAnSchulungsdozentMailAsync(anmeldungByToken, abmeldung.Nachricht, vorstand); } return(View("AbmeldungErfolgreich")); }
public async Task <ActionResult> Selbstabmeldung(String accessToken) { // TODO: test, valid token, invalid token (other cases already handled above) Anmeldung anmeldung = await _anmeldungRepository.GetByAccessTokenWithSchulungAsync(accessToken); if (anmeldung == null) { return(NotFound("Die Anmeldung existiert nicht, vielleicht bereits abgemeldet?")); } var cantCancelReason = getCantCancelReason(anmeldung); if (cantCancelReason != null) { ViewBag.cantCancelReason = cantCancelReason; return(View("SelbstmanagementError")); } AbmeldungViewModel abmeldung = new AbmeldungViewModel { Nachricht = "", Schulung = anmeldung.Schulung, anmeldungId = anmeldung.anmeldungId, }; return(View("Selbstabmeldung", abmeldung)); }