Example #1
0
        /// <summary>
        /// Toont de view om een afdeling aan te passen, gegeven een afdelingsID
        /// </summary>
        /// <param name="groepID">ID van de groep die de bewerking uitvoert</param>
        /// <param name="afdelingID"></param>
        /// <returns></returns>
        public ActionResult Bewerken(int groepID, int afdelingID)
        {
            var model = new AfdelingInfoModel();

            BaseModelInit(model, groepID);

            model.Info = ServiceHelper.CallService <IGroepenService, AfdelingInfo>(svc => svc.AfdelingOphalen(afdelingID));

            model.Titel = "Afdeling bewerken";
            return(View("Afdeling", model));
        }
        public ActionResult Nieuw(int groepID)
        {
            var model = new AfdelingInfoModel();

            BaseModelInit(model, groepID);

            model.Info = new AfdelingInfo();

            model.Titel = Properties.Resources.NieuweAfdelingTitel;
            return(View("Nieuw", model));
        }
Example #3
0
        /// <summary>
        /// Toont de view die toelaat een nieuwe afdeling te maken.
        /// </summary>
        /// <param name="groepID">Groep waarvoor de afdeling gemaakt moet worden</param>
        /// <returns>De view die toelaat een nieuwe afdeling te maken.</returns>
        public ActionResult NieuweAfdelingMaken(int groepID)
        {
            var model = new AfdelingInfoModel
            {
                Titel = Properties.Resources.NieuweAfdelingTitel,
                Info  = new AfdelingInfo()
            };

            BaseModelInit(model, groepID);

            return(View("NieuweAfdelingMaken", model));
        }
Example #4
0
        public ActionResult NieuweAfdelingMaken(AfdelingInfoModel model, int groepID)
        {
            model.Titel = Properties.Resources.NieuweAfdelingTitel;
            BaseModelInit(model, groepID);

            if (!ModelState.IsValid)
            {
                // Modelstate bevat ongeldige waarden; toon de pagina opnieuw
                return(View(model));
            }

            try
            {
                ServiceHelper.CallService <IGroepenService>(e => e.AfdelingAanmaken(groepID, model.Info.Naam, model.Info.Afkorting));

                TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback;

                return(RedirectToAction("Index"));
            }
            catch (FaultException <BestaatAlFault <AfdelingInfo> > ex)
            {
                if (string.Compare(ex.Detail.Bestaande.Afkorting, model.Info.Afkorting, true) == 0)
                {
                    ModelState.AddModelError(
                        "Info.Afkorting",
                        string.Format(Properties.Resources.AfdelingsCodeBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam));
                }
                else if (string.Compare(ex.Detail.Bestaande.Naam, model.Info.Naam, true) == 0)
                {
                    ModelState.AddModelError(
                        "Info.Naam",
                        string.Format(
                            Properties.Resources.AfdelingsNaamBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam));
                }
                else
                {
                    // Mag niet gebeuren
                    ModelState.AddModelError("Er heeft zich een fout voorgedaan, gelieve contact op te nemen met het secretariaat.", ex);
                    Debug.Assert(false);
                }

                return(View(model));
            }
        }
Example #5
0
        public ActionResult Bewerken(AfdelingInfoModel model, int groepID)
        {
            BaseModelInit(model, groepID);

            try
            {
                ServiceHelper.CallService <IGroepenService>(e => e.AfdelingBewaren(model.Info));

                TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback;

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                // TODO dit kan beter
                TempData["fout"] = ex.Message;

                model.Info = ServiceHelper.CallService <IGroepenService, AfdelingInfo>(svc => svc.AfdelingOphalen(model.Info.ID));

                model.Titel = "Afdeling bewerken";
                return(View("Afdeling", model));
            }
        }
        public ActionResult Nieuw(AfdelingInfoModel model, int groepID)
        {
            model.Titel = Properties.Resources.NieuweAfdelingTitel;
            BaseModelInit(model, groepID);

            if (ModelState.IsValid)
            {
                try
                {
                    ServiceHelper.CallService <IGroepenService>(e => e.AfdelingAanmaken(groepID, model.Info.Naam, model.Info.Afkorting));

                    TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback;

                    // (er wordt hier geredirect ipv de view te tonen, zodat je bij een 'refresh' niet de vraag krijgt
                    // of je de gegevens opnieuw wil posten.)
                    return(RedirectToAction("Afdelingen", new { Controller = "Groep", groepID = model.GroepID }));
                }
                catch (FaultException <BestaatAlFault <AfdelingInfo> > ex)
                {
                    // Als de naam EN de afkorting van een afdeling al bestaan, dan hebben we graag twee
                    // foutberichten. Vandaar het truukje met 'possible'. Maar dit vangt niet alle situaties op.
                    // Als een nieuwe afdeling de naam heeft van bestaande afdeling A, en de code van bestaande
                    // afdeling B, dan zul je enkel een exception krijgen op de afkorting, omdat de
                    // BestaatAlException maar 1 object oplevert.

                    var possible = false;
                    if (String.Compare(ex.Detail.Bestaande.Afkorting, model.Info.Afkorting, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        possible = true;
                        ModelState.AddModelError(
                            "Info.Afkorting",
                            string.Format(
                                Properties.Resources.AfdelingsCodeBestaatAl,
                                ex.Detail.Bestaande.Afkorting,
                                ex.Detail.Bestaande.Naam));
                    }
                    if (String.Compare(ex.Detail.Bestaande.Naam, model.Info.Naam, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        possible = true;
                        ModelState.AddModelError(
                            "Info.Naam",
                            string.Format(
                                Properties.Resources.AfdelingsNaamBestaatAl,
                                ex.Detail.Bestaande.Afkorting,
                                ex.Detail.Bestaande.Naam));
                    }
                    if (!possible)
                    {
                        // Dit kan niet.
                        Debug.Assert(false);
                    }

                    return(View(model));// FIXME only reloads part of the previous page
                }
            }
            else
            {
                // Modelstate bevat ongeldige waarden; toon de pagina opnieuw

                return(View(model));// FIXME only reloads part of the previous page
            }
        }