Exemplo n.º 1
0
        public ActionResult Lijst(
            [RouteValue] int id,
            [QueryStringValue] int afdelingID,
            [QueryStringValue] int functieID,
            [QueryStringValue] LidInfoModel.SpecialeLedenLijst ledenLijst,
            [QueryStringValue] LidEigenschap sortering,
            [RouteValue] int groepID)
        {
            Debug.Assert(Request.Url != null);
            // Er wordt een nieuwe lijst opgevraagd, dus wordt deze vanaf hier bijgehouden als de lijst om terug naar te springen
            ClientState.VorigeLijst = Request.Url.ToString();
            var model = Zoeken(id, groepID, sortering, afdelingID, functieID, ledenLijst);

            return(model == null?TerugNaarVorigeLijst() : View("Index", model));
        }
Exemplo n.º 2
0
 private static LidFilter FilterMaken(int afdelingID, int functieID, LidInfoModel.SpecialeLedenLijst ledenLijst, int groepsWerkJaarID)
 {
     return(new LidFilter
     {
         GroepsWerkJaarID = groepsWerkJaarID,
         AfdelingID = (afdelingID == 0) ? null : (int?)afdelingID,
         FunctieID = (functieID == 0) ? null : (int?)functieID,
         ProbeerPeriodeNa =
             (ledenLijst == LidInfoModel.SpecialeLedenLijst.Probeerleden) ? (DateTime?)DateTime.Today : null,
         HeeftVoorkeurAdres = (ledenLijst == LidInfoModel.SpecialeLedenLijst.OntbrekendAdres) ? (bool?)false : null,
         HeeftTelefoonNummer =
             (ledenLijst == LidInfoModel.SpecialeLedenLijst.OntbrekendTelefoonNummer) ? (bool?)false : null,
         HeeftEmailAdres = (ledenLijst == LidInfoModel.SpecialeLedenLijst.LeidingZonderEmail) ? (bool?)false : null,
         HeeftVerdachtEmailAdres = (ledenLijst == LidInfoModel.SpecialeLedenLijst.LedenMetVerdachteEmail) ? (bool?)true : null,
         LidType = (ledenLijst == LidInfoModel.SpecialeLedenLijst.LeidingZonderEmail) ? LidType.Leiding : LidType.Alles
     });
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Voert een zoekopdracht uit op de leden, en plaatst het resultaat in een LidInfoModel.
        /// Levert normaal geen adressen op.
        /// </summary>
        /// <param name="gwjID">ID van het groepswerkjaar waarvoor een ledenlijst wordt gevraagd.
        ///  Indien 0, het recentste groepswerkjaar van de groep met ID <paramref name="groepID"/>.</param>
        /// <param name="groepID">Groep waaruit de leden opgehaald moeten worden.</param>
        /// <param name="sortering">Bepaalt op welke eigenschap de lijst gesorteerd moet worden</param>
        /// <param name="afdelingID">Als verschillend van 0, worden enkel de leden uit de afdeling met
        ///  dit AfdelingID getoond.</param>
        /// <param name="functieID">Als verschillend van 0, worden enkel de leden met de functie met
        ///  dit FunctieID getoond.</param>
        /// <param name="ledenLijst">Hiermee kan je speciale lijsten opzoeken</param>
        /// <returns>Een LidInfoModel, met in member LidInfoLijst de gevonden leden. Null als de groep en groepswerkjaar niet geassocieerd zijn</returns>
        private LidInfoModel Zoeken(
            int gwjID,
            int groepID,
            LidEigenschap sortering,
            int afdelingID,
            int functieID,
            LidInfoModel.SpecialeLedenLijst ledenLijst)
        {
            // Het sorteren gebeurt nu in de webapp, en niet in de backend.  Sorteren is immers presentatie, dus de service
            // moet zich daar niet mee bezig houden.
            //
            // Voor de personenlijst ligt dat anders.  Als je daar een pagina opvraagt, dan is die
            // pagina afhankelijk van de gekozen sortering.  Daarom moet het sorteren voor personen
            // wel door de service gebeuren.  (Maar hier, bij de leden, is dat niet van toepassing.)

            // Als geen groepswerkjaar gegeven is: haal recentste op
            var groepsWerkJaarID = gwjID == 0 ? ServiceHelper.CallService <IGroepenService, int>(svc => svc.RecentsteGroepsWerkJaarIDGet(groepID)) : gwjID;

            var model = LijstModelInitialiseren(groepsWerkJaarID, groepID, sortering);

            if (model == null) // Groep en gwj matchen niet
            {
                TempData["fout"] = Resources.GroepNietBijGroepsWerKjaar;
                return(null);
            }

            model.KanLedenBewerken = groepsWerkJaarID == (from wj in model.WerkJaarInfos
                                                          orderby wj.WerkJaar descending
                                                          select wj.ID).FirstOrDefault();

            // Bewaar gekozen filters in model, zodat de juiste items in de dropdownlijsten geselecteerd worden

            model.AfdelingID    = afdelingID;
            model.FunctieID     = functieID;
            model.SpecialeLijst = ledenLijst;

            // Bouw het lijstje met speciale lijsten op
            if ((model.GroepsNiveau & (Niveau.Gewest | Niveau.Verbond)) == 0)
            {
                model.SpecialeLijsten.Add(
                    LidInfoModel.SpecialeLedenLijst.Probeerleden,
                    Resources.LijstProbeerLeden);
            }
            model.SpecialeLijsten.Add(
                LidInfoModel.SpecialeLedenLijst.VerjaardagsLijst,
                Resources.LijstVerjaardagen);
            model.SpecialeLijsten.Add(
                LidInfoModel.SpecialeLedenLijst.OntbrekendAdres,
                Resources.LijstOntbrekendAdres);
            model.SpecialeLijsten.Add(
                LidInfoModel.SpecialeLedenLijst.OntbrekendTelefoonNummer,
                Resources.LijstOntbrekendTelefoonNummer);
            model.SpecialeLijsten.Add(
                LidInfoModel.SpecialeLedenLijst.LeidingZonderEmail,
                Resources.LijstLeidingZonderEmail);
            model.SpecialeLijsten.Add(LidInfoModel.SpecialeLedenLijst.LedenMetVerdachteEmail,
                                      Resources.LijstLedenMetVerdachteEmail);
            model.SpecialeLijsten.Add(
                LidInfoModel.SpecialeLedenLijst.Alles,
                Resources.LijstAlles);

            // Haal de op te lijsten leden op; de filter wordt bepaald uit de method parameters.
            model.LidInfoLijst = ServiceHelper.CallService <ILedenService, IList <LidOverzicht> >(
                svc => svc.LijstZoekenLidOverzicht(
                    FilterMaken(afdelingID, functieID, ledenLijst, groepsWerkJaarID),
                    false)); // false om geen adressen op te halen.

            if (functieID != 0)
            {
                // Naam van de functie opzoeken, zodat we ze kunnen invullen in de paginatitel
                var functieNaam = (from fi in model.FunctieInfoDictionary
                                   where fi.Key == functieID
                                   select fi).First().Value.Naam;

                model.Titel = String.Format(Resources.AfdelingsLijstTitel,
                                            functieNaam,
                                            model.JaartalGetoondGroepsWerkJaar,
                                            model.JaartalGetoondGroepsWerkJaar + 1);
            }
            else if (afdelingID != 0)
            {
                var af = (from a in model.AfdelingsInfoDictionary.AsQueryable()
                          where a.Value.AfdelingID == afdelingID
                          select a.Value).FirstOrDefault();

                if (af == null)
                {
                    model.Titel = String.Format(
                        Resources.AfdelingBestondNiet,
                        model.JaartalGetoondGroepsWerkJaar,
                        model.JaartalGetoondGroepsWerkJaar + 1);
                }
                else
                {
                    model.Titel = String.Format(Resources.AfdelingsLijstTitel,
                                                af.AfdelingNaam,
                                                model.JaartalGetoondGroepsWerkJaar,
                                                model.JaartalGetoondGroepsWerkJaar + 1);
                }
            }
            else
            {
                model.Titel = String.Format(Resources.LedenOverzicht,
                                            model.JaartalGetoondGroepsWerkJaar,
                                            model.JaartalGetoondGroepsWerkJaar + 1);
            }
            model.LidInfoLijst = Sorteren(model.LidInfoLijst, sortering).ToList();
            return(model);
        }