Example #1
0
        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"));
        }
Example #2
0
        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));
        }