public async Task <ActionResult> Nachtragen(string schulungGuid) { // TODO: test, valid id, invalid id try { if (schulungGuid == null) { return(StatusCode(400)); } Schulung schulung = await _schulungRepository.GetByIdAsync(schulungGuid); if (schulung == null) { return(StatusCode(404, "Schulung mit angegebener ID nicht gefunden!")); } AnmeldungNachtragenViewModel anmeldung = new AnmeldungNachtragenViewModel(); anmeldung.SchulungGuid = schulungGuid; anmeldung.SchulungTitel = schulung.Titel; return(View("Nachtragen", anmeldung)); } catch (Exception e) { logger.Error(e); string code = "#305"; e = new Exception("Fehler beim Erstellen der View " + code, e); return(View("Error", e)); } }
public async Task <ActionResult> Nachtragen(AnmeldungNachtragenViewModel anmeldungViewModel, String schulungGuid) { // TODO: test try { if (ModelState.IsValid) { Anmeldung anmeldung = anmeldungViewModel.ToAnmeldung(); if (anmeldung.SchulungGuid != schulungGuid) { throw new Exception("Guid missmatch"); } Schulung schulung = await _schulungRepository.GetByIdAsync(schulungGuid); if (schulung == null) { return(StatusCode(404, "Schulung mit angegebener ID nicht gefunden!")); } await _anmeldungRepository.AddAsync(anmeldung); // sende Mail falls mindestens ein Start Termin nach jetzt is, also noch was von der Schulung // in Zukunft kommt if (DateTime.Now < schulung.Termine.Min(x => x.Start)) { await mailingHelper.GenerateAndSendBestätigungsMailAsync(anmeldung, await _schulungRepository.GetByIdAsync(anmeldung.SchulungGuid), Util.getVorstand(_context), Util.getRootUrl(Request)); } return(Redirect("/Schulung/Teilnehmerliste/" + anmeldung.SchulungGuid)); } return(View("Nachtragen", anmeldungViewModel)); } catch (Exception e) { logger.Error(e); string code = "#306"; e = new Exception("Fehler beim Verarbeiten des Inputs " + code, e); return(View("Error", e)); } }