public async Task <ActionResult> Anlegen(SchulungCreateViewModel newSchulung) { // TODO: test try { if (ModelState.IsValid) { Schulung schulung = await _schulungRepository.AddAsync(newSchulung.ToSchulung()); // stellt für alle Termine sicher, dass die Reihenfolge Anmeldefrist<Start<Ende eingehalten ist // auch Start der Anmeldefrist vor dem Ende der Anmeldefrist if (schulung.Termine.Count > 0 && schulung.Termine.All(x => x.Start > schulung.Anmeldefrist && x.End > x.Start) && schulung.StartAnmeldefrist < schulung.Anmeldefrist) { await mailingHelper.GenerateAndSendAnlegeMailAsync(schulung, Util.getRootUrl(Request), Util.getVorstand(_context)); return(RedirectToAction("Uebersicht")); } if (schulung.StartAnmeldefrist < schulung.Anmeldefrist) { ViewBag.errorMessage = "Start der Anmeldefrist muss vor dem Ende sein!"; } else if (schulung.Termine.Count > 0) { ViewBag.errorMessage = "Anmeldefrist vor Starttermin vor Endtermin bitte!"; } else { ViewBag.errorMessage = "Mindestens ein Termin muss vorhanden sein!"; } } ViewBag.OrganisatorenDatalist = await _schulungRepository.GetPreviousOrganizersAsync(); return(View("Anlegen", newSchulung)); } catch (Exception e) { logger.Error(e); string code = "#203"; e = new Exception("Fehler beim Verarbeiten des Inputs " + code, e); return(View("Error", e)); } }
public async Task <ActionResult> BearbeitenBestaetigt(SchulungCreateViewModel schulungVM, string SchulungGuid) { // TODO: test try { if (ModelState.IsValid) { Schulung schulung = schulungVM.ToSchulung(); // check ob zeiten passen if (schulung.Termine.Count > 0 && schulung.Termine.All(x => x.Start > schulung.Anmeldefrist && x.End > x.Start) && schulung.StartAnmeldefrist < schulung.Anmeldefrist) { await _schulungRepository.UpdateAsync(schulung); return(RedirectToAction("Uebersicht")); //Nach Abschluss der Aktion Weiterleitung zur Ubersicht-View } if (schulung.StartAnmeldefrist >= schulung.Anmeldefrist) { ViewBag.errorMessage = "Start der Anmeldefrist muss vor dem Ende sein!"; } else if (schulung.Termine.Count > 0) { ViewBag.errorMessage = "Anmeldefrist vor Starttermin vor Endtermin bitte!"; } else { ViewBag.errorMessage = "Mindestens ein Termin muss vorhanden sein!"; } } // Fehlermeldung und view bag wieder aufbereiten List <string> orgs = await _schulungRepository.GetPreviousOrganizersAsync(); ViewBag.OrganisatorenDatalist = orgs; return(View("Bearbeiten", schulungVM)); } catch (Exception e) { logger.Error(e); string code = "#212"; e = new Exception("Fehler beim Verarbeiten des Inputs " + code, e); return(View("Error", e)); } }