Ejemplo n.º 1
0
        public async Task <ActionResult> Bearbeiten(string SchulungGuid)
        {
            // TODO: test
            try
            {
                if (SchulungGuid == null)
                {
                    return(new StatusCodeResult(400));
                }
                SchulungCreateViewModel schulungVM = (await _schulungRepository.GetByIdAsync(SchulungGuid)).ToSchulungCreateViewModel(_mapper);
                if (schulungVM == null)
                {
                    return(NotFound("Schulung mit angegebener ID nicht gefunden!"));
                }
                // Add suggestions for organizers
                List <string> orgs = await _schulungRepository.GetPreviousOrganizersAsync();

                ViewBag.OrganisatorenDatalist = orgs;
                return(View("Bearbeiten", schulungVM));
            }
            catch (Exception e)
            {
                logger.Error(e);
                string code = "#211";
                e = new Exception("Fehler beim Erstellen der View " + code, e);
                return(View("Error", e));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Übersetzt das Model in ein CreateView Model zum bearbeiten
        /// </summary>
        /// <returns>Ein SchulungCreateViewModel</returns>
        public SchulungCreateViewModel ToSchulungCreateViewModel(IMapper mapper)
        {
            SchulungCreateViewModel result = mapper.Map <SchulungCreateViewModel>(this);

            result.TermineVM = Termine.Select(x => x.ToTerminViewModel()).ToList();

            result.AnmeldefristDate = Anmeldefrist.Date;
            result.AnmeldefristTime = Anmeldefrist.TimeOfDay;

            result.StartAnmeldefristDate = StartAnmeldefrist.Date;
            result.StartAnmeldefristTime = StartAnmeldefrist.TimeOfDay;

            return(result);
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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));
            }
        }