예제 #1
0
        private LidInfoModel LijstModelInitialiseren(int groepsWerkJaarID, int groepID, LidEigenschap sortering)
        {
            // TODO (#1033): deze code moet opgekuist worden

            var model = new LidInfoModel();

            BaseModelInit(model, groepID);

            // Laad de lijst van werkjaren in van de groep en zet de juiste info over het te tonen werkJaar
            model.WerkJaarInfos = ServiceHelper.CallService <IGroepenService, IEnumerable <WerkJaarInfo> >(e => e.WerkJarenOphalen(groepID));

            var gevraagdwerkjaar = (from g in model.WerkJaarInfos
                                    where g.ID == groepsWerkJaarID
                                    select g).FirstOrDefault();

            if (gevraagdwerkjaar == null) // Het is geen groepswerkjaar van de gegeven groep
            {
                return(null);
            }

            model.IDGetoondGroepsWerkJaar      = groepsWerkJaarID;
            model.JaartalGetoondGroepsWerkJaar = gevraagdwerkjaar.WerkJaar;

            // TODO (#1033): Hetgeen hieronder opgevraagd wordt, zit volgens mij al in de reeds opgehaalde model.WerkJaarInfos.  Na te kijken.
            model.JaartalHuidigGroepsWerkJaar = ServiceHelper.CallService <IGroepenService, GroepsWerkJaarDetail>(e => e.RecentsteGroepsWerkJaarOphalen(groepID)).WerkJaar;

            // Haal alle afdelingsjaren op van de groep in het groepswerkjaar
            var list = ServiceHelper.CallService <IGroepenService, IList <AfdelingDetail> >(groep => groep.ActieveAfdelingenOphalen(groepsWerkJaarID));

            // Laad de afdelingen in het model in via een dictionary
            model.AfdelingsInfoDictionary = new Dictionary <int, AfdelingDetail>();
            foreach (var ai in list)
            {
                model.AfdelingsInfoDictionary.Add(ai.AfdelingID, ai);
            }

            // Haal alle functies op van de groep in het groepswerkjaar

            // *****************************************************
            // ** OPGELET! Als je debugger hieronder crasht, dan  **
            // ** zit er waarschijnlijk een functie met ongeldig  **
            // ** lidtype in de functietabel!                     **
            // *****************************************************
            var list2 = ServiceHelper.CallService <IGroepenService, IEnumerable <FunctieDetail> >(groep => groep.FunctiesOphalen(groepsWerkJaarID, LidType.Alles));

            model.FunctieInfoDictionary = new Dictionary <int, FunctieDetail>();
            foreach (var fi in list2)
            {
                model.FunctieInfoDictionary.Add(fi.ID, fi);
            }

            model.PageHuidig = model.IDGetoondGroepsWerkJaar;
            model.PageTotaal = model.WerkJaarInfos.Count();

            model.GekozenSortering = sortering;

            return(model);
        }
예제 #2
0
        /// <summary>
        /// Voert de gekozen actie in de dropdownlist van de ledenlijst uit op de geselecteerde
        /// personen.
        /// </summary>
        /// <param name="model">De property GekozenActie bepaalt wat er zal gebeuren met de gelieerde personen
        /// met ID's in de property SelectieGelieerdePersoonIDs.</param>
        /// <param name="groepID">ID van de groep waarin de gebruiker op dit moment aan het werken is.</param>
        /// <returns>Een redirect naar de juiste controller action</returns>
        private ActionResult ToepassenOpSelectie(LidInfoModel model, int groepID)
        {
            // In eerste instantie is dit voornamelijk copy/paste uit de personencontroller.

            if (model.SelectieGelieerdePersoonIDs == null || !model.SelectieGelieerdePersoonIDs.Any())
            {
                TempData["fout"] = Resources.NiemandGeselecteerdFout;
                return(TerugNaarVorigeLijst());
            }

            switch (model.GekozenActie)
            {
            case 1:
                // hack met tempdata, want inschrijven zit in de personencontroller.
                // Als je dit zou wijzigen, let er dan op dat je #2714 niet terug introduceert.

                TempData["gpids"] = model.SelectieGelieerdePersoonIDs;
                return(RedirectToAction("InschrijvenTempData", "Personen",
                                        new { groepID }));

            case 2:
                GelieerdePersonenUitschrijven(model.SelectieGelieerdePersoonIDs, groepID, Resources.LedenUitgeschreven);
                return(RedirectToAction("Index", new { groepID }));

            case 3:
                return(AfdelingenBewerken(model.SelectieGelieerdePersoonIDs, groepID));

            case 4:
                TempData["ids"] = model.SelectieGelieerdePersoonIDs;
                return(RedirectToAction("InschrijvenVoorUitstap", "Personen", new { groepID }));

            default:
                TempData["fout"] = Resources.OnbestaandeActieFeedback;
                return(TerugNaarVorigeLijst());
            }
        }
예제 #3
0
        public ActionResult Lijst(int id, int groepID, LidInfoModel model)
        {
            if (model.GekozenActie > 0)
            {
                return(ToepassenOpSelectie(model, groepID));
            }
            switch (model.SpecialeLijst)
            {
            case LidInfoModel.SpecialeLedenLijst.Alles:
                return(RedirectToAction("Lijst", new { id, groepID }));

            case LidInfoModel.SpecialeLedenLijst.VerjaardagsLijst:
                return(RedirectToAction("Lijst",
                                        new
                {
                    id,
                    afdelingID = model.AfdelingID,
                    functieID = model.FunctieID,
                    ledenLijst = model.SpecialeLijst,
                    sortering = LidEigenschap.Verjaardag,
                    groepID
                }));

            default:
                return(RedirectToAction("Lijst",
                                        new
                {
                    id,
                    afdelingID = model.AfdelingID,
                    functieID = model.FunctieID,
                    ledenLijst = model.SpecialeLijst,
                    sortering = model.GekozenSortering,
                    groepID
                }));
            }
        }