public ActionResult FunctiesToekennen(LidFunctiesModel model, int id, int groepID)
        {
            // TODO (#1036): Dit moet een atomaire operatie zijn, om concurrencyproblemen te vermijden.
            try
            {
                ServiceHelper.CallService <ILedenService>(l => l.FunctiesVervangen(id, model.FunctieIDs));

                VeelGebruikt.FunctieProblemenResetten(groepID);

                TempData["succes"] = Resources.WijzigingenOpgeslagenFeedback;
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                var    lidInfo     = ServiceHelper.CallService <ILedenService, PersoonLidInfo>(svc => svc.DetailsOphalen(id));
                string naam        = lidInfo.PersoonDetail.VolledigeNaam;
                string persoonlijk = lidInfo.PersoonDetail.Geslacht == GeslachtsType.Vrouw ? "haar" : "hem";
                string bezittelijk = lidInfo.PersoonDetail.Geslacht == GeslachtsType.Vrouw ? "haar" : "zijn";
                switch (ex.Detail.FoutNummer)
                {
                case FoutNummer.EMailVerplicht:
                    TempData["fout"] = String.Format(Resources.EmailVoorContactOntbreekt, naam,
                                                     persoonlijk);
                    break;

                case FoutNummer.ContactMoetNieuwsBriefKrijgen:
                    TempData["fout"] = String.Format(Resources.ContactMoetNieuwsBriefKrijgen, naam, bezittelijk);
                    break;

                default:
                    throw;
                }
            }
            return(RedirectToAction("Bewerken", "Personen", new { groepID, id = model.Persoon.GelieerdePersoonID }));
        }
示例#2
0
        public ActionResult PlaatsBewerken(int groepID, int id, UitstapPlaatsBewerkenModel model)
        {
            // Als het adres buitenlands is, neem dan de woonplaats over uit het
            // vrij in te vullen veld.

            if (String.Compare(model.Land, Properties.Resources.Belgie, true) != 0)
            {
                model.WoonPlaatsNaam = model.WoonPlaatsBuitenLand;
            }

            try
            {
                // De service zal model.NieuwAdres.ID negeren; dit wordt
                // steeds opnieuw opgezocht.  Adressen worden nooit
                // gewijzigd, enkel bijgemaakt (en eventueel verwijderd.)

                ServiceHelper.CallService <IUitstappenService>(l => l.PlaatsBewaren(id, model.Uitstap.PlaatsNaam, model.Uitstap.Adres));
                VeelGebruikt.BivakStatusResetten(groepID);

                return(RedirectToAction("Bekijken", new { groepID, id }));
            }
            catch (FaultException <OngeldigObjectFault> ex)
            {
                BaseModelInit(model, groepID);

                new ModelStateWrapper(ModelState).BerichtenToevoegen(ex.Detail, String.Empty);

                model.BeschikbareWoonPlaatsen = VeelGebruikt.WoonPlaatsenOphalen(model.PostNr);
                model.AlleLanden = VeelGebruikt.LandenOphalen();
                model.Titel      = model.Uitstap.Naam;

                return(View(model));
            }
        }
示例#3
0
        /// <summary>
        /// Stelt de deelnemer met ID <paramref name="id"/> in als contact voor de uitstap waaraan
        /// hij deelneemt.
        /// </summary>
        /// <param name="groepID">ID van groep die momenteel actief is</param>
        /// <param name="id"></param>
        /// <returns>Redirect naar overzicht uitstap</returns>
        public ActionResult ContactInstellen(int groepID, int id)
        {
            int uitstapID = ServiceHelper.CallService <IUitstappenService, int>(svc => svc.ContactInstellen(id));

            VeelGebruikt.BivakStatusResetten(groepID);
            return(RedirectToAction("Bekijken", new { id = uitstapID }));
        }
        public ActionResult AdresBewerken(int groepID)
        {
            var model = new GroepsAdresModel();

            BaseModelInit(model, groepID);

            model.Adres =
                ServiceHelper.CallService <IGroepenService, GroepDetail>(svc => svc.DetailOphalen(groepID)).Adres ??
                new AdresInfo {
                LandNaam = Properties.Resources.Belgie
            };

            // Als het adres buitenlands is, dan moeten we de woonplaats nog eens overnemen in
            // WoonPlaatsBuitenland.  Dat is nodig voor de AdresBewerkenControl, die een beetje
            // raar ineen zit.
            if (String.Compare(model.Adres.LandNaam, Properties.Resources.Belgie, StringComparison.OrdinalIgnoreCase) != 0)
            {
                model.WoonPlaatsBuitenLand = model.Adres.WoonPlaatsNaam;
            }

            model.Titel      = Properties.Resources.AdresLokalen;
            model.AlleLanden = VeelGebruikt.LandenOphalen();
            model.BeschikbareWoonPlaatsen = VeelGebruikt.WoonPlaatsenOphalen(model.Adres.PostNr);

            return(View(model));
        }
示例#5
0
        public ActionResult PlaatsBewerken(int groepID, int id)
        {
            var model = new UitstapPlaatsBewerkenModel();

            BaseModelInit(model, groepID);
            model.Uitstap = ServiceHelper.CallService <IUitstappenService, UitstapOverzicht>(svc => svc.DetailsOphalen(id));

            if (model.Uitstap.Adres == null)
            {
                model.Uitstap.Adres = new AdresInfo {
                    LandNaam = Properties.Resources.Belgie
                };
            }

            // Als het adres buitenlands is, dan moeten we de woonplaats nog eens overnemen in
            // WoonPlaatsBuitenland.  Dat is nodig voor de AdresBewerkenControl, die een beetje
            // raar ineen zit.
            if (String.Compare(model.Uitstap.Adres.LandNaam, Properties.Resources.Belgie, true) != 0)
            {
                model.WoonPlaatsBuitenLand = model.Uitstap.Adres.WoonPlaatsNaam;
            }

            model.Titel      = model.Uitstap.Naam;
            model.AlleLanden = VeelGebruikt.LandenOphalen();
            model.BeschikbareWoonPlaatsen = VeelGebruikt.WoonPlaatsenOphalen(model.Uitstap.Adres.PostNr);

            return(View(model));
        }
        public ActionResult AdresBewerken(int groepID, GroepsAdresModel model)
        {
            // Als het adres buitenlands is, neem dan de woonplaats over uit het
            // vrij in te vullen veld.

            if (String.Compare(model.Land, Properties.Resources.Belgie, StringComparison.OrdinalIgnoreCase) != 0)
            {
                model.WoonPlaatsNaam = model.WoonPlaatsBuitenLand;
            }

            try
            {
                // De service zal model.Adres.ID negeren; dit wordt
                // steeds opnieuw opgezocht.  Adressen worden nooit
                // gewijzigd, enkel bijgemaakt (en eventueel verwijderd.)

                ServiceHelper.CallService <IGroepenService>(l => l.AdresInstellen(groepID, model.Adres));

                return(RedirectToAction("Index"));
            }
            catch (FaultException <OngeldigObjectFault> ex)
            {
                BaseModelInit(model, groepID);

                new ModelStateWrapper(ModelState).BerichtenToevoegen(ex.Detail, String.Empty);

                model.BeschikbareWoonPlaatsen = VeelGebruikt.WoonPlaatsenOphalen(model.PostNr);
                model.AlleLanden = VeelGebruikt.LandenOphalen();
                model.Titel      = Properties.Resources.AdresLokalen;

                return(View(model));
            }
        }
        public ActionResult LoonVerliesVerzekeren(BevestigingsModel model, int groepID, int id)
        {
            try
            {
                ServiceHelper.CallService <ILedenService, int>(svc => svc.LoonVerliesVerzekeren(id));
                TempData["succes"] = Resources.WijzigingenOpgeslagenFeedback;
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                switch (ex.Detail.FoutNummer)
                {
                case FoutNummer.GroepInactief:
                    TempData["fout"] = String.Format(Resources.GroepInactief);
                    break;

                case FoutNummer.ChronologieFout:
                    var url      = Url.Action("Index", "JaarOvergang");
                    var werkJaar = VeelGebruikt.GroepsWerkJaarOphalen(groepID).WerkJaar;
                    TempData["fout"] = String.Format(Resources.WerkJaarInOvergang, werkJaar + 1, werkJaar + 2, url);
                    break;

                default:
                    throw;
                }
            }
            catch (FaultException <BestaatAlFault <String> > )
            {
                TempData["fout"] = String.Format(Resources.VerzekeringBestaatAl);
            }
            // TODO (#1031): DetailsOphalen is eigenlijk overkill; we hebben enkel de volledige naam en het GelieerdePersoonID nodig.
            var info = ServiceHelper.CallService <ILedenService, PersoonInfo>(svc => svc.PersoonOphalen(id));

            return(RedirectToAction("Bewerken", "Personen", new { id = info.GelieerdePersoonID }));
        }
        public override ActionResult Index([DefaultParameterValue(0)] int dummyint)
        {
            ActionResult r;

            try
            {
                if (VeelGebruikt.UniekeGroepGav(User.Identity.Name) != 0)
                {
                    // Redirect naar personenlijst van gevraagde groep;
                    r = RedirectToAction("Index", new { Controller = "Handleiding", groepID = VeelGebruikt.UniekeGroepGav(User.Identity.Name) });
                }
                else
                {
                    var model = new GavModel();
                    BaseModelInit(model, null);                        // null: nog geen groep gekozen

                    model.Titel = "Kies je Chirogroep";

                    // Als we hier crashen, kill dan de backend eens, zodat die wordt herstart.

                    model.GroepenLijst = ServiceHelper.CallService <IGroepenService, IEnumerable <GroepInfo> >
                                             (g => g.MijnGroepenOphalen());

                    r = View("Index", model);
                }
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                r = RedirectToAction(ex.Detail.FoutNummer == FoutNummer.GeenDatabaseVerbinding ? "GeenVerbinding" : "Index", "Error");
            }

            return(r);
        }
        public JsonResult WoonPlaatsenOphalen(int postNummer)
        {
            var resultaat = (from g in VeelGebruikt.WoonPlaatsenOphalen()
                             where g.PostNummer == postNummer
                             orderby g.Naam
                             select g);

            return(Json(resultaat, JsonRequestBehavior.AllowGet));
        }
示例#10
0
        public ActionResult TerugDraaien(MasterViewModel model, int groepID)
        {
            BaseModelInit(model, groepID);

            ServiceHelper.CallService <IGroepenService>(
                svc => svc.JaarOvergangTerugDraaien(VeelGebruikt.GroepsWerkJaarOphalen(groepID).WerkJaarID));
            // Clear cache voor groep.
            VeelGebruikt.AllesResetten(groepID);
            return(RedirectToAction("Index", "Leden", new { groepID }));
        }
        public ActionResult PostNrVoorstellen(string gemeente)
        {
            var tags = VeelGebruikt.WoonPlaatsenOphalen().Where(x => x.Naam.Equals(gemeente, StringComparison.CurrentCultureIgnoreCase));

            // Select the tags that match the query, and get the
            // number or tags specified by the limit.
            var retValue = tags
                           .Select(r => r.PostNummer).FirstOrDefault();

            // Return the result set as JSON
            return(Json(retValue));
        }
        public override ActionResult Index(int groepID)
        {
            var gwj        = VeelGebruikt.GroepsWerkJaarOphalen(groepID);
            var werkjaarID = gwj.WerkJaarID;
            var model      = new GroepsInstellingenModel
            {
                Titel  = Properties.Resources.GroepsInstellingenTitel,
                Detail = ServiceHelper.CallService <IGroepenService, GroepDetail>(svc => svc.DetailOphalen(groepID)),
                NonActieveAfdelingen =
                    ServiceHelper.CallService <IGroepenService, List <AfdelingInfo> >(
                        svc => svc.OngebruikteAfdelingenOphalen(werkjaarID)),
                IsLive = VeelGebruikt.IsLive()
            };

            BaseModelInit(model, groepID);

            return(View(model));
        }
        public JsonResult TypeToggle(int id, int groepID)
        {
            var nieuwLidId = 0;

            // TODO (#1812): Feedback van callbackfunctie standaardiseren.

            try
            {
                nieuwLidId = ServiceHelper.CallService <ILedenService, int>(svc => svc.TypeToggle(id));
                VeelGebruikt.LedenProblemenResetten(groepID);
                VeelGebruikt.FunctieProblemenResetten(groepID);
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                return(Json("{\"fout\" : \"" + ex.Message + "\"}")); // moet met strip tags??
            }
            return(Json("{ \"succes\" : \"" + nieuwLidId + "\"}"));
        }
        public ActionResult GemeentesVoorstellen(String q, int limit)
        {
            if (limit == 0)
            {
                limit = Settings.Default.AutoSuggestieStandaardLimiet;
            }

            var gemeenteLijst = VeelGebruikt.WoonPlaatsenOphalen();

            var tags = (from g in gemeenteLijst
                        orderby g.Naam
                        select new { Tag = g.Naam })
                       .Where(x => x.Tag.StartsWith(q, StringComparison.CurrentCultureIgnoreCase))
                       .Distinct()
                       .Take(limit)
                       .ToList();

            // Return the result set as JSON
            return(Json(tags));
        }
        public ActionResult Download([RouteValue] int id, [QueryStringValue] int afdelingID, [QueryStringValue] int functieID, [RouteValue] int groepID, [QueryStringValue] LidInfoModel.SpecialeLedenLijst ledenLijst, [QueryStringValue] LidEigenschap sortering)
        {
            WerkJaarInfo werkJaarInfo;
            int          groepsWerkJaarID;

            // Als geen groepswerkjaar gegeven is: haal recentste op

            if (id == 0)
            {
                var gwj = VeelGebruikt.GroepsWerkJaarOphalen(groepID);
                werkJaarInfo = new WerkJaarInfo {
                    WerkJaar = gwj.WerkJaar, ID = gwj.WerkJaarID
                };
                groepsWerkJaarID = werkJaarInfo.ID;
            }
            else
            {
                var gwjs = ServiceHelper.CallService <IGroepenService, IEnumerable <WerkJaarInfo> >(svc => svc.WerkJarenOphalen(groepID));
                werkJaarInfo = (from wj in gwjs
                                where wj.ID == id
                                select wj).FirstOrDefault();
                groepsWerkJaarID = id;
            }

            // Haal de op te lijsten leden op; de filter wordt bepaald uit de method parameters.
            var leden = ServiceHelper.CallService <ILedenService, IList <PersoonLidInfo> >(
                svc => svc.LijstZoekenPersoonLidInfo(
                    FilterMaken(afdelingID, functieID, ledenLijst, groepsWerkJaarID)));

            // Alle afdelingen is eigenlijk overkill. De actieve zou genoeg zijn. Maar meestal
            // zal daar niet zo' n verschil opzitten.
            var alleAfdelingen =
                ServiceHelper.CallService <IGroepenService, IList <AfdelingInfo> >(
                    svc => svc.AlleAfdelingenOphalen(groepID));

            const string bestandsNaam = "leden.xlsx";

            var pkg = GapExcelManip.LidExcelDocument(leden, alleAfdelingen);

            return(new ExcelResult(pkg, bestandsNaam));
        }
        public ActionResult NaamWijzigen(GroepInfoModel model, int groepID)
        {
            BaseModelInit(model, groepID);

            try
            {
                ServiceHelper.CallService <IGroepenService>(e => e.Bewaren(model.Info));
                TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback;
                // Aangemaakt om de gecachte naam te kunnen leegmaken. Zie bug #1270
                VeelGebruikt.GroepsWerkJaarResetten(groepID);

                return(RedirectToAction("Index"));
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                ModelState.AddModelError("fout", ex.Detail.Bericht);


                model.Titel = "Groepsnaam wijzigen";
                return(View("NaamWijzigen", model));
            }
        }
示例#17
0
        public ActionResult Nieuw(UitstapModel model, int groepID)
        {
            var validator = new PeriodeValidator();

            if (!validator.Valideer(model.Uitstap))
            {
                ModelState.AddModelError("Uitstap.DatumVan", string.Format(Properties.Resources.VanTotUitstap));
                ModelState.AddModelError("Uitstap.DatumTot", string.Format(Properties.Resources.VanTotUitstap));
            }

            BaseModelInit(model, groepID);
            model.Titel = Properties.Resources.NieuweUitstap;

            if (ModelState.IsValid)
            {
                int uitstapID = ServiceHelper.CallService <IUitstappenService, int>(svc => svc.Bewaren(groepID, model.Uitstap));
                VeelGebruikt.BivakStatusResetten(groepID);
                return(RedirectToAction("Bekijken", new { groepID, id = uitstapID }));
            }

            return(View("Bewerken", model));
        }
        /// <summary>
        /// Schrijft via de backend de gelieerde personen met gegeven <paramref name="gelieerdePersoonIDs"/> uit
        /// uit de groep met gegeven <paramref name="groepID"/>.
        /// </summary>
        /// <param name="gelieerdePersoonIDs">ID's uit te schrijven gelieerde personen</param>
        /// <param name="groepID">ID van groep waarvoor uit te schrijven</param>
        /// <param name="succesboodschap">Feedback die gegeven zal worden bij succes</param>
        protected void GelieerdePersonenUitschrijven(IList <int> gelieerdePersoonIDs, int groepID, string succesboodschap)
        {
            // Ik vind het een beetje vreemd dat het succesbericht hier een parameter is.

            var fouten = String.Empty;             // TODO (#1035): fouten opvangen

            ServiceHelper.CallService <ILedenService>(l => l.Uitschrijven(gelieerdePersoonIDs, out fouten));

            // TODO (#1035): beter manier om problemen op te vangen dan via een string

            if (fouten == String.Empty)
            {
                TempData["succes"] = succesboodschap;

                VeelGebruikt.FunctieProblemenResetten(groepID);
                VeelGebruikt.LedenProblemenResetten(groepID);
            }
            else
            {
                // TODO (#1035): vermijden dat output van de back-end rechtstreeks zichtbaar wordt voor de user.
                TempData["fout"] = fouten;
            }
        }
示例#19
0
        public ActionResult Bewerken(UitstapModel model, int groepID, int id)
        {
            var validator = new PeriodeValidator();

            if (!validator.Valideer(model.Uitstap))
            {
                ModelState.AddModelError("Uitstap.DatumVan", string.Format(Properties.Resources.VanTotUitstap));
                ModelState.AddModelError("Uitstap.DatumTot", string.Format(Properties.Resources.VanTotUitstap));
            }

            BaseModelInit(model, groepID);
            // neem uitstapID over uit url, want ik denk dat daarvoor geen field is voorzien.
            model.Uitstap.ID = id;
            model.Titel      = model.Uitstap.Naam;

            if (ModelState.IsValid)
            {
                var uitstapID = ServiceHelper.CallService <IUitstappenService, int>(svc => svc.Bewaren(groepID, model.Uitstap));
                VeelGebruikt.BivakStatusResetten(groepID);
                return(RedirectToAction("Bekijken", new { groepID, id = uitstapID }));
            }

            return(View("Bewerken", model));
        }
 public ActionResult LedenproblemenHertellen(int groepID)
 {
     VeelGebruikt.LedenProblemenResetten(groepID);
     return(RedirectToAction("Index", groepID));
 }
示例#21
0
        protected void BaseModelInit(MasterViewModel model, int?groepID)
        {
            // Werken we op test of live?
            string login = User == null ? null : User.Identity.Name;

            model.IsLive        = VeelGebruikt.IsLive();
            model.DeveloperMode = Authenticator.WieBenIk().DeveloperMode;
            int adnr = Authenticator.WieBenIk().AdNr;

            model.Ik = VeelGebruikt.GebruikersDetail(adnr);

            if (!groepID.HasValue)
            {
                // De Gekozen groep is nog niet gekend, zet defaults
                model.GroepsNaam      = Resources.GroepsnaamDefault;
                model.Plaats          = Resources.GroepPlaatsDefault;
                model.StamNummer      = Resources.StamNrDefault;
                model.MeerdereGroepen = false;
                // model.GroepsCategorieen = new List<SelectListItem>();
            }
            else
            {
                #region gekozen groep en werkJaar

                var gwjDetail = VeelGebruikt.GroepsWerkJaarOphalen((int)groepID);

                model.GroepsNaam     = gwjDetail.GroepNaam;
                model.GroepsNiveau   = gwjDetail.GroepNiveau;
                model.Plaats         = gwjDetail.GroepPlaats;
                model.StamNummer     = gwjDetail.GroepCode;
                model.GroepID        = gwjDetail.GroepID;
                model.HuidigWerkJaar = gwjDetail.WerkJaar;
                model.WerkJaarStatus = gwjDetail.Status;

                #endregion

                #region GAV over meerdere groepen?

                // Als UniekeGroepGav een waarde heeft, is er maar één groep. Bij 0 zijn er meerdere.

                model.MeerdereGroepen = (VeelGebruikt.UniekeGroepGav(login) == 0);

                #endregion

                #region Mededelingen

                // Eerst algemene mededelingen

                if (gwjDetail.Status == WerkJaarStatus.InOvergang)
                {
                    var url = Url.Action("Index", "JaarOvergang");
                    model.Mededelingen.Add(new Mededeling
                    {
                        Type = MededelingsType.Probleem,
                        Info = String.Format(
                            Resources.WerkJaarInOvergang,
                            gwjDetail.WerkJaar + 1,
                            gwjDetail.WerkJaar + 2,
                            url)
                    });
                }

                var bivakstatus = VeelGebruikt.BivakStatusHuidigWerkjaarOphalen((int)groepID);
                VoegBivakStatusMededelingenToe(bivakstatus, model.Mededelingen);

                // Problemen opvragen
                var functieProblemen = VeelGebruikt.FunctieProblemenOphalen(gwjDetail.GroepID);
                var ledenProblemen   = VeelGebruikt.LedenProblemenOphalen(gwjDetail.GroepID);

                // Problemen vertalen naar model
                if (functieProblemen != null)
                {
                    foreach (var p in functieProblemen)
                    {
                        var bekijkMetFunctieUrl = Url.Action("Functie", "Leden",
                                                             new
                        {
                            groepsWerkJaarID = gwjDetail.WerkJaarID,
                            id      = p.ID,
                            groepID = groepID,
                        });
                        // Eerst een paar specifieke en veelvoorkomende problemen apart behandelen.
                        if (p.MinAantal > 0 && p.EffectiefAantal == 0)
                        {
                            var statusToekennenUrl = Url.Action("ZelfFunctiesToekennen", "Leden",
                                                                new
                            {
                                groepID = groepID,
                            });
                            model.Mededelingen.Add(new Mededeling
                            {
                                Type = MededelingsType.Probleem,
                                Info = string.Format(Resources.FunctieOntbreekt, p.Naam, p.Code, bekijkMetFunctieUrl, statusToekennenUrl)
                            });
                        }
                        else if (p.MaxAantal == 1 && p.EffectiefAantal > 1)
                        {
                            model.Mededelingen.Add(new Mededeling
                            {
                                Type = MededelingsType.Probleem,
                                Info = string.Format(Resources.FunctieMeerdereKeren, p.Naam, p.Code, p.EffectiefAantal, bekijkMetFunctieUrl)
                            });
                        }
                        // Dan de algemene foutmeldingen
                        else if (p.MinAantal > p.EffectiefAantal)
                        {
                            model.Mededelingen.Add(new Mededeling
                            {
                                Type = MededelingsType.Probleem,
                                Info = string.Format(Resources.FunctieTeWeinig, p.Naam, p.Code, p.EffectiefAantal, p.MinAantal, bekijkMetFunctieUrl)
                            });
                        }
                        else if (p.EffectiefAantal > p.MaxAantal)
                        {
                            model.Mededelingen.Add(new Mededeling
                            {
                                Type = MededelingsType.Probleem,
                                Info = string.Format(Resources.FunctieTeVeel, p.Naam, p.Code, p.EffectiefAantal, p.MinAantal, bekijkMetFunctieUrl)
                            });
                        }
                    }
                }

                if (ledenProblemen != null)
                {
                    foreach (var p in ledenProblemen)
                    {
                        string boodschap = String.Empty;
                        string url       = String.Empty;

                        switch (p.Probleem)
                        {
                        case LidProbleem.AdresOntbreekt:
                            boodschap = Resources.LedenZonderAdres;
                            url       = Url.Action("ZonderAdres", "Leden");
                            break;

                        case LidProbleem.EmailOntbreekt:
                            boodschap = Resources.LeidingZonderEmail;
                            url       = Url.Action("LeidingZonderMail", "Leden");
                            break;

                        case LidProbleem.EmailIsVerdacht:
                            boodschap = Resources.LedenMetVerdachteEmail;
                            url       = Url.Action("LedenMetVerdachteEmail", "Leden");
                            break;

                        case LidProbleem.TelefoonNummerOntbreekt:
                            boodschap = Resources.LedenZonderTelefoonNummer;
                            url       = Url.Action("ZonderTelefoon", "Leden");
                            break;

                        default:
                            Debug.Assert(false);
                            break;
                        }

                        model.Mededelingen.Add(new Mededeling
                        {
                            Type = MededelingsType.Probleem,
                            Info = String.Format(boodschap, p.Aantal, url)
                        });
                    }
                }

                #endregion
            }
        }
示例#22
0
        public ActionResult Stap2AfdelingsJarenVerdelen(JaarOvergangAfdelingsJaarModel model, int groepID)
        {
            // Als alles goed loopt, hebben we deze straks nodig.
            int vorigGwjID = ServiceHelper.CallService <IGroepenService, int>(svc => svc.RecentsteGroepsWerkJaarIDGet(groepID));

            // We gebruiken de modelstate om te laten zien dat het model al dan niet geldig is. Die verificatie
            // gebeurt op dit moment gedeeltelijk door de backend, dus moeten we eerst de backend aanroepen.

            try
            {
                ServiceHelper.CallService <IGroepenService>(s => s.JaarOvergangUitvoeren(model.Afdelingen, groepID));
            }
            catch (FaultException <FoutNummerFault> ex)
            {
                switch (ex.Detail.FoutNummer)
                {
                case FoutNummer.OngeldigeGeboorteJarenVoorAfdeling:
                    ModelState.AddModelError("NieuwWerkjaar", Properties.Resources.OngeldigeGeboorteJarenVoorAfdeling);
                    break;

                default:
                    ModelState.AddModelError("NieuwWerkJaar", ex.Detail.Bericht);
                    break;
                }
            }

            if (!ModelState.IsValid)
            {
                // Model herstellen op basis van ingevulde gegevens.

                BaseModelInit(model, groepID);

                model.NieuwWerkjaar =
                    ServiceHelper.CallService <IGroepenService, int>(g => g.NieuwWerkJaarOphalen(groepID));
                model.OfficieleAfdelingen =
                    ServiceHelper.CallService <IGroepenService, IEnumerable <OfficieleAfdelingDetail> >(
                        e => e.OfficieleAfdelingenOphalen()).ToArray();

                var alleAfdelingen =
                    ServiceHelper.CallService <IGroepenService, IList <AfdelingInfo> >(
                        svc => svc.AlleAfdelingenOphalen(groepID));

                // De meeste gegevens in model.Afdelingen komen mooi terug uit het form. We moeten
                // enkel de namen van de afdelingen terug invullen.

                foreach (var aj in model.Afdelingen)
                {
                    aj.AfdelingNaam =
                        (from afd in alleAfdelingen where afd.ID == aj.AfdelingID select afd.Naam).FirstOrDefault();
                }

                return(View("Stap2AfdelingsJarenVerdelen", model));
            }

            VeelGebruikt.AllesResetten(groepID);

            if (!model.LedenMeteenInschrijven)
            {
                return(RedirectToAction("Index", "Leden"));
            }

            return(RedirectToAction("Herinschrijven", "Personen", new { groepID, groepsWerkJaarID = vorigGwjID }));
        }
        /// <summary>
        /// Alle landen in een json lijst.
        /// </summary>
        /// <returns>JsonResult.</returns>
        public JsonResult LandenVoorstellen()
        {
            List <LandInfo> landen = VeelGebruikt.LandenOphalen();

            return(Json(landen, JsonRequestBehavior.AllowGet));
        }