예제 #1
0
        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));
            }
        }
예제 #2
0
        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));
            }
        }