Ejemplo n.º 1
0
 public void Updaten(GelieerdePersoon gp)
 {
     if (gp == null)
     {
         throw new ArgumentNullException("gp");
     }
 }
        public void ValidatieLidVoorstelZonderTelefoonNummer()
        {
            // Arrange
            // Ik maak een persoon, en een werkjaar met 2 afdelingen.  Maar dat is hier
            // niet relevant. Wat wel van belang is, is dat de persoon te jong is om
            // lid te worden. We verwachten dat het maken van een lidvoorstel crasht.

            var gwj = new GroepsWerkJaar {
                WerkJaar = 2014, Groep = new ChiroGroep()
            };                                                                           // Werkjaar 2012-2013

            var gp = new GelieerdePersoon
            {
                Persoon =
                    new Persoon
                {
                    GeboorteDatum = new DateTime(2000, 06, 21),
                    Geslacht      = GeslachtsType.Vrouw,
                },
                Groep         = gwj.Groep,
                PersoonsAdres = new PersoonsAdres(),
                Communicatie  = new List <CommunicatieVorm>() // geen telefoonnummer
            };

            gwj.AfdelingsJaar.Add(new AfdelingsJaar
            {
                ID = 1,
                GeboorteJaarVan   = 1999,
                GeboorteJaarTot   = 2000,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling()
            });

            gwj.AfdelingsJaar.Add(new AfdelingsJaar
            {
                ID = 2,
                GeboorteJaarVan   = 1997,
                GeboorteJaarTot   = 1998,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling()
            });

            var lidVoorstel = new LidVoorstel
            {
                GelieerdePersoon         = gp,
                GroepsWerkJaar           = gwj,
                AfdelingsJarenIrrelevant = true,
                LeidingMaken             = false
            };

            var target = new LidVoorstelValidator();

            // Act

            var foutNummer = target.FoutNummer(lidVoorstel);

            // Assert

            Assert.AreEqual(FoutNummer.TelefoonNummerOntbreekt, foutNummer);
        }
        public void AdresGenotenZelfdeGroepTest()
        {
            // ARRANGE

            var gelieerdePersoon1 = new GelieerdePersoon {
                ID = 2, Persoon = new Persoon {
                    ID = 4
                }
            };

            gelieerdePersoon1.Persoon.GelieerdePersoon.Add(gelieerdePersoon1);

            var gelieerdePersoon2 = new GelieerdePersoon {
                ID = 3, Persoon = new Persoon {
                    ID = 5
                }
            };

            gelieerdePersoon2.Persoon.GelieerdePersoon.Add(gelieerdePersoon2);

            var groep = new ChiroGroep
            {
                ID = 1,
                GelieerdePersoon = new List <GelieerdePersoon> {
                    gelieerdePersoon1, gelieerdePersoon2
                }
            };

            gelieerdePersoon1.Groep = groep;
            gelieerdePersoon2.Groep = groep;

            var adres = new BelgischAdres();

            var persoonsAdres1 = new PersoonsAdres {
                ID = 6, Persoon = gelieerdePersoon1.Persoon, Adres = adres
            };
            var persoonsAdres2 = new PersoonsAdres {
                ID = 7, Persoon = gelieerdePersoon2.Persoon, Adres = adres
            };

            gelieerdePersoon1.Persoon.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres1
            };
            gelieerdePersoon2.Persoon.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres2
            };
            adres.PersoonsAdres = new List <PersoonsAdres> {
                persoonsAdres1, persoonsAdres2
            };

            // ACT

            var target = new GelieerdePersonenManager();
            var result = target.AdresGenotenUitZelfdeGroep(gelieerdePersoon1);

            // ASSERT

            Assert.IsTrue(result.Contains(gelieerdePersoon1));
            Assert.IsTrue(result.Contains(gelieerdePersoon2));
        }
        public void AlleAbonnementenVerwijderenGeenEmailTest()
        {
            // ARRANGE

            var gelieerdePersoon = new GelieerdePersoon
            {
                Communicatie = new List <CommunicatieVorm>(),
                Persoon      = new Persoon {
                    AdNummer = 1
                }
            };

            // Verwacht dat er een (dummy) e-mailadres meegegeven wordt.
            var kipSyncMock = new Mock <ISyncPersoonService>();

            kipSyncMock.Setup(src => src.AbonnementStopzetten(It.Is <int>(ad => ad == gelieerdePersoon.Persoon.AdNummer.Value)))
            .Verifiable();
            Factory.InstantieRegistreren(kipSyncMock.Object);

            // ACT

            var target = Factory.Maak <AbonnementenSync>();

            target.AlleAbonnementenVerwijderen(gelieerdePersoon);

            // ASSERT

            kipSyncMock.VerifyAll();
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Levert het contact-e-mailadres op van een gelieerde persoon
 /// </summary>
 /// <param name="gelieerdePersoon">Gelieerde persoon waarvan contact-e-mailadres opgeleverd moet worden</param>
 /// <returns>Het betreffende e-mailadres</returns>
 /// <remarks>Als er geen e-mailadres de voorkeur heeft, wordt gewoon een willekeurig opgeleverd. Of
 /// <c>null</c>, als er geen e-mailadressen zijn</remarks>
 public string ContactEmail(GelieerdePersoon gelieerdePersoon)
 {
     return((from cv in gelieerdePersoon.Communicatie
             where cv.CommunicatieType.ID == (int)(CommunicatieTypeEnum.Email)
             orderby cv.Voorkeur
             select cv.Nummer).LastOrDefault());
 }
        public void AdresToevoegenVoorkeurTest()
        {
            // ARRANGE

            var gelieerdePersoon = new GelieerdePersoon {
                Persoon = new Persoon()
            };

            gelieerdePersoon.Persoon.GelieerdePersoon.Add(gelieerdePersoon);

            var adres = new BelgischAdres();

            // ACT

            var target = new GelieerdePersonenManager();

            target.AdresToevoegen(new List <GelieerdePersoon> {
                gelieerdePersoon
            }, adres, AdresTypeEnum.Thuis, true);

            // ASSERT

            // vind het persoonsadresobject
            var persoonsAdres = gelieerdePersoon.Persoon.PersoonsAdres.First();

            // weet het persoonsadresobject dat het voorkeursadres is?
            Assert.IsNotNull(persoonsAdres.GelieerdePersoon.FirstOrDefault());
        }
Ejemplo n.º 7
0
 public void Check(GelieerdePersoon g)
 {
     if (g == null || !_autorisatieMgr.IsGav(g))
     {
         throw FaultExceptionHelper.GeenGav();
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Maakt gelieerde persoon leiding voor het gegeven werkJaar.
        /// <returns>
        /// Nieuw leidingsobject; niet gepersisteerd
        /// </returns>
        /// <remarks>
        /// Private; andere lagen moeten via 'Inschrijven' gaan.
        /// <para>
        /// </para>
        /// Deze method mag niet geexposed worden via de services, omdat een gebruiker uiteraard enkel in het huidige groepswerkjaar leden
        /// kan maken.
        /// <para>
        /// </para>
        /// Voorlopig gaan we ervan uit dat aan een gelieerde persoon al zijn vorige lidobjecten met
        /// groepswerkjaren gekoppeld zijn.  Dit wordt gebruikt in LidMaken
        /// om na te kijken of een gelieerde persoon al eerder lid was.  Dit lijkt me echter niet nodig; zie de commentaar aldaar.
        /// </remarks>
        /// <throws>FoutNummerException</throws>
        /// <throws>GeenGavException</throws>
        /// </summary>
        /// <param name="gp">
        /// Gelieerde persoon, gekoppeld met groep en persoon
        /// </param>
        /// <param name="gwj">
        /// Groepswerkjaar waarin leiding te maken
        /// </param>
        /// <param name="isJaarovergang">
        /// Geeft aan of het over de automatische jaarovergang gaat.
        /// (relevant voor probeerperiode)
        /// </param>
        /// <param name="afdelingsJaren">
        /// De afdelingsjaren waarin de nieuwe leiding zeker moet ingeschreven worden
        /// </param>
        /// <returns>
        /// Het aangemaakte Leiding-object
        /// </returns>
        private Leiding LeidingMaken(GelieerdePersoon gp,
                                     GroepsWerkJaar gwj,
                                     bool isJaarovergang,
                                     IEnumerable <AfdelingsJaar> afdelingsJaren)
        {
            Debug.Assert(gp != null && gp.GebDatumMetChiroLeefTijd != null);

            if (!KanLeidingWorden(gp, gwj))
            {
                throw new FoutNummerException(FoutNummer.LeidingTeJong, Resources.TeJongVoorLeiding);
            }

            var leiding = LidMaken(gp, gwj, LidType.Leiding, isJaarovergang) as Leiding;

            Debug.Assert(leiding != null);

            if (afdelingsJaren != null)
            {
                foreach (var a in afdelingsJaren)
                {
                    leiding.AfdelingsJaar.Add(a);
                    a.Leiding.Add(leiding);
                }
            }

            return(leiding);
        }
Ejemplo n.º 9
0
        public void ToekennenTest()
        {
            // ARRANGE

            var gelieerdePersoon = new GelieerdePersoon
            {
                ID    = 1,
                Groep = new ChiroGroep {
                    ID = 3
                },
                Persoon = new Persoon {
                    ID = 2
                }
            };

            gelieerdePersoon.Persoon.GelieerdePersoon.Add(gelieerdePersoon);

            // ACT

            var target = new GebruikersRechtenManager();

            target.ToekennenOfWijzigen(gelieerdePersoon.Persoon, gelieerdePersoon.Groep, Permissies.Bewerken,
                                       Permissies.Bewerken, Permissies.Bewerken, Permissies.Bewerken);
            var result = gelieerdePersoon.Persoon.GebruikersRechtV2.FirstOrDefault();

            // ASSERT

            Assert.IsNotNull(result);
            Assert.AreEqual(gelieerdePersoon.Groep, result.Groep);
            Assert.AreEqual(Permissies.Bewerken, result.PersoonsPermissies);
            Assert.AreEqual(Permissies.Bewerken, result.GroepsPermissies);
            Assert.AreEqual(Permissies.Bewerken, result.AfdelingsPermissies);
            Assert.AreEqual(Permissies.Bewerken, result.IedereenPermissies);
        }
Ejemplo n.º 10
0
        public void NieuwInschrijvenLidAdres()
        {
            // ARRANGE

            var groep          = new ChiroGroep();
            var groepsWerkJaar = new GroepsWerkJaar {
                Groep = groep, WerkJaar = 2014
            };
            var gelieerdePersoon = new GelieerdePersoon
            {
                Groep         = groep,
                ChiroLeefTijd = 0,
                Persoon       =
                    new Persoon
                {
                    Geslacht      = GeslachtsType.Vrouw,
                    GeboorteDatum = new DateTime(1994, 04, 23)
                }
            };

            var target = Factory.Maak <LedenManager>();

            // Assert

            var ex = Assert.Throws <FoutNummerException>(() => target.NieuwInschrijven(new LidVoorstel
            {
                GelieerdePersoon         = gelieerdePersoon,
                GroepsWerkJaar           = groepsWerkJaar,
                AfdelingsJarenIrrelevant = false,
                LeidingMaken             = true
            }, false));

            Assert.AreEqual(FoutNummer.AdresOntbreekt, ex.FoutNummer);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Probeert de gegeven gelieerde persoon in de Chirocivi te vinden, en updatet
        /// hem als dat lukt. Wordt de persoon niet gevonden, dan wordt er een
        /// nieuwe aangemaakt.
        /// </summary>
        /// <param name="gp">Te bewaren gelieerde persoon</param>
        public void UpdatenOfMaken(GelieerdePersoon gp)
        {
            Debug.Assert(gp.Persoon.InSync);

            var details = MappingHelper.Map <GelieerdePersoon, PersoonDetails>(gp);

            ServiceHelper.CallService <ISyncPersoonService>(svc => svc.PersoonUpdatenOfMaken(details));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Levert alle gelieerde personen op uit dezelfde persoon als <paramref name="gelieerdePersoon"/>, die minstens
        /// een adres gemeenschappelijk hebben met die <paramref name="gelieerdePersoon"/>.
        /// </summary>
        /// <param name="gelieerdePersoon">Eem gelieerde persoon</param>
        /// <returns>Alle gelieerde personen uit dezelfde persoon als <paramref name="gelieerdePersoon"/>, die minstens
        /// een adres gemeenschappelijk hebben met die <paramref name="gelieerdePersoon"/>.</returns>
        public GelieerdePersoon[] AdresGenotenUitZelfdeGroep(GelieerdePersoon gelieerdePersoon)
        {
            // We trekken het wat uit elkaar om makkelijker te kunnen debuggen.
            var persoonsAdressen  = gelieerdePersoon.Persoon.PersoonsAdres.SelectMany(pa => pa.Adres.PersoonsAdres);
            var gelieerdePersonen = persoonsAdressen.SelectMany(pa => pa.Persoon.GelieerdePersoon);

            return(gelieerdePersonen.Where(gp => Equals(gp.Groep, gelieerdePersoon.Groep)).ToArray());
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Voorkeurtelefoonnr, voorkeurmailadres, ... van een gelieerde persoon
        /// </summary>
        /// <param name="gp">Gelieerde persoon</param>
        /// <param name="type">Communicatietype waarvan voorkeur gevraagd wordt.</param>
        /// <returns>Voorkeurtelefoonnr, -mailadres,... van de gelieerde persoon.
        /// <c>null</c> indien onbestaand.</returns>
        private string VoorkeurCommunicatie(GelieerdePersoon gp, CommunicatieTypeEnum type)
        {
            var query = from c in gp.Communicatie
                        where (c.CommunicatieType.ID == (int)type) && c.Voorkeur
                        select c.Nummer;

            return(query.FirstOrDefault());
        }
        public void ValidatieLidVoorstelKleutersTest()
        {
            // Arrange
            // Ik maak een persoon, en een werkjaar met 2 afdelingen.  Maar dat is hier
            // niet relevant. Wat wel van belang is, is dat de persoon te jong is om
            // lid te worden.

            var gwj = new GroepsWerkJaar {
                WerkJaar = 2012, Groep = new ChiroGroep()
            };                                                                           // Werkjaar 2012-2013

            var gp = new GelieerdePersoon
            {
                Persoon =
                    new Persoon
                {
                    GeboorteDatum = new DateTime(2010, 06, 21),     // Geboren in 2010
                    Geslacht      = GeslachtsType.Vrouw,
                },
                Groep = gwj.Groep
            };

            gwj.AfdelingsJaar.Add(new AfdelingsJaar
            {
                ID = 1,
                GeboorteJaarVan   = 1999,
                GeboorteJaarTot   = 2000,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling()
            });

            gwj.AfdelingsJaar.Add(new AfdelingsJaar
            {
                ID = 2,
                GeboorteJaarVan   = 1997,
                GeboorteJaarTot   = 1998,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling()
            });

            var lidVoorstel = new LidVoorstel
            {
                GelieerdePersoon         = gp,
                GroepsWerkJaar           = gwj,
                AfdelingsJarenIrrelevant = true,
                LeidingMaken             = false
            };

            var target = new LidVoorstelValidator();

            // Act

            var foutNummer = target.FoutNummer(lidVoorstel);

            // Assert

            Assert.AreEqual(FoutNummer.LidTeJong, foutNummer);
        }
        public void FunctieLangerInGebruikGeforceerdVerwijderenTest()
        {
            // ARRANGE

            // model
            var groep = new ChiroGroep();

            var vorigWerkJaar = new GroepsWerkJaar {
                WerkJaar = 2011, Groep = groep, ID = 2
            };
            var ditWerkJaar = new GroepsWerkJaar {
                WerkJaar = 2012, Groep = groep, ID = 3
            };

            groep.GroepsWerkJaar.Add(vorigWerkJaar);
            groep.GroepsWerkJaar.Add(ditWerkJaar);

            var functie = new Functie {
                Groep = groep, ID = 1
            };

            groep.Functie.Add(functie);

            var gelieerdePersoon = new GelieerdePersoon {
                Groep = groep
            };

            groep.GelieerdePersoon.Add(gelieerdePersoon);

            var leidingToen = new Leiding {
                GelieerdePersoon = gelieerdePersoon, GroepsWerkJaar = vorigWerkJaar
            };
            var leidingNu = new Leiding {
                GelieerdePersoon = gelieerdePersoon, GroepsWerkJaar = ditWerkJaar
            };

            vorigWerkJaar.Lid.Add(leidingToen);
            ditWerkJaar.Lid.Add(leidingNu);

            leidingToen.Functie.Add(functie);
            leidingNu.Functie.Add(functie);
            functie.Lid.Add(leidingToen);
            functie.Lid.Add(leidingNu);

            // ACT

            var mgr    = Factory.Maak <FunctiesManager>();
            var result = mgr.Verwijderen(functie, true);

            // ASSERT

            // functie niet meer geldig
            Assert.IsTrue(groep.Functie.Contains(functie));
            Assert.AreEqual(result.WerkJaarTot, ditWerkJaar.WerkJaar - 1);

            // enkel het lid van dit werkJaar blijft over
            Assert.AreEqual(result.Lid.Count, 1);
        }
Ejemplo n.º 16
0
        private static string VoorkeursMail(GelieerdePersoon gelieerdePersoon)
        {
            string result = (from a in gelieerdePersoon.Communicatie
                             where a.CommunicatieType.ID == 3
                             orderby a.Voorkeur descending
                             select a.Nummer).FirstOrDefault();

            return(result);
        }
Ejemplo n.º 17
0
        public void InschrijvingVoorstellenTest1()
        {
            // Arrange
            // Ik maak een persoon, en een werkjaar met 2 afdelingen, zodanig dat
            // de geboortedatum van die persoon buiten de afdelingen valt. We verwachten
            // de afdeling die het meest logisch is (kleinste verschil met geboortedatum)

            var gp = new GelieerdePersoon
            {
                Persoon =
                    new Persoon
                {
                    GeboorteDatum = new DateTime(1996, 03, 07),
                    Geslacht      = GeslachtsType.Vrouw,
                },
                PersoonsAdres = new PersoonsAdres(),
            };

            var gwj = new GroepsWerkJaar {
                WerkJaar = 2011, Groep = new ChiroGroep()
            };

            gp.Groep = gwj.Groep;

            var afdelingsJaar1 = new AfdelingsJaar
            {
                ID = 1,
                GeboorteJaarVan   = 1999,
                GeboorteJaarTot   = 2000,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling(),
                GroepsWerkJaar    = gwj
            };
            var afdelingsJaar2 = new AfdelingsJaar
            {
                ID = 2,
                GeboorteJaarVan   = 1997,
                GeboorteJaarTot   = 1998,
                Geslacht          = GeslachtsType.Gemengd,
                OfficieleAfdeling = new OfficieleAfdeling(),
                GroepsWerkJaar    = gwj
            };

            gwj.AfdelingsJaar.Add(afdelingsJaar1);
            gwj.AfdelingsJaar.Add(afdelingsJaar2);


            var target = Factory.Maak <LedenManager>();

            // Act

            var actual = target.InschrijvingVoorstellen(gp, gwj, false);

            // Assert

            Assert.AreEqual(actual.AfdelingsJaren[0], afdelingsJaar2);
        }
Ejemplo n.º 18
0
        public void InschrijvenLeidingZonderAfdelingTest()
        {
            // ARRANGE

            var groep          = new ChiroGroep();
            var groepsWerkJaar = new GroepsWerkJaar {
                Groep = groep, WerkJaar = 2012
            };
            var gelieerdePersoon = new GelieerdePersoon
            {
                Groep         = groep,
                ChiroLeefTijd = 0,
                Persoon       =
                    new Persoon
                {
                    Geslacht      = GeslachtsType.Vrouw,
                    GeboorteDatum = new DateTime(1990, 04, 23)
                },
                // verplichte velden voor inschrijving (#1786)
                PersoonsAdres = new PersoonsAdres(),
                Communicatie  =
                    new List <CommunicatieVorm>
                {
                    new CommunicatieVorm
                    {
                        CommunicatieType = new CommunicatieType {
                            ID = (int)CommunicatieTypeEnum.TelefoonNummer
                        }
                    },
                    new CommunicatieVorm
                    {
                        CommunicatieType = new CommunicatieType {
                            ID = (int)CommunicatieTypeEnum.Email
                        }
                    }
                }
            };

            var target = Factory.Maak <LedenManager>();

            // ACT

            var actual =
                target.NieuwInschrijven(new LidVoorstel
            {
                GroepsWerkJaar           = groepsWerkJaar,
                GelieerdePersoon         = gelieerdePersoon,
                AfdelingsJarenIrrelevant = false,
                LeidingMaken             = true
            }, false) as Leiding;

            // ASSERT

            Assert.IsNotNull(actual);
            Assert.AreEqual(0, actual.AfdelingsJaar.Count);
        }
Ejemplo n.º 19
0
        public void DubbelVerwijderenGedeeldAdresTest()
        {
            // ARRANGE

            var origineel = new Persoon();
            var dubbel    = new Persoon();

            var gelieerdeOrigineel = new GelieerdePersoon {
                Persoon = origineel, Groep = new ChiroGroep()
            };
            var gelieerdeDubbel = new GelieerdePersoon {
                Persoon = dubbel, Groep = new ChiroGroep()
            };

            origineel.GelieerdePersoon.Add(gelieerdeOrigineel);
            dubbel.GelieerdePersoon.Add(gelieerdeDubbel);

            var adres = new BelgischAdres();

            var origineelPa = new PersoonsAdres {
                Persoon = origineel, Adres = adres
            };
            var dubbelPa = new PersoonsAdres {
                Persoon = dubbel, Adres = adres
            };

            adres.PersoonsAdres.Add(origineelPa);
            adres.PersoonsAdres.Add(dubbelPa);

            origineel.PersoonsAdres.Add(origineelPa);
            dubbel.PersoonsAdres.Add(dubbelPa);

            var allePersonen = new List <Persoon> {
                origineel, dubbel
            };
            var allePersoonsAdressen = new List <PersoonsAdres> {
                origineelPa, dubbelPa
            };

            var repositoryProviderMock = new Mock <IRepositoryProvider>();

            repositoryProviderMock.Setup(src => src.RepositoryGet <Persoon>())
            .Returns(new DummyRepo <Persoon>(allePersonen));
            repositoryProviderMock.Setup(src => src.RepositoryGet <PersoonsAdres>())
            .Returns(new DummyRepo <PersoonsAdres>(allePersoonsAdressen));

            Factory.InstantieRegistreren(repositoryProviderMock.Object);

            // ACT
            var target = Factory.Maak <GapUpdater>();

            target.DubbelVerwijderen(origineel, dubbel);

            // ASSERT
            Assert.AreEqual(1, allePersoonsAdressen.Count);
        }
Ejemplo n.º 20
0
 /// <summary>
 /// Zoekt een afdelingsjaar van het recentste groepswerkjaar, waarin de gegeven
 /// <paramref name="gelieerdePersoon"/> (kind)lid zou kunnen worden. <c>null</c> als er zo geen
 /// bestaat.
 /// </summary>
 /// <param name="gelieerdePersoon">gelieerde persoon waarvoor we een afdeling zoeken</param>
 /// <returns>een afdelingsjaar van het recentste groepswerkjaar, waarin de gegeven
 /// <paramref name="gelieerdePersoon"/> lid zou kunnen worden. <c>null</c> als er zo geen
 /// bestaat.</returns>
 public AfdelingsJaar AfdelingsJaarVoorstellen(GelieerdePersoon gelieerdePersoon)
 {
     if (!gelieerdePersoon.Groep.GroepsWerkJaar.Any())
     {
         return(null);
     }
     return(AfdelingsJaarVoorstellen(gelieerdePersoon,
                                     gelieerdePersoon.Groep.GroepsWerkJaar.OrderByDescending(gwj => gwj.WerkJaar)
                                     .First()));
 }
Ejemplo n.º 21
0
        /// <summary>
        /// Geeft aan of het voorkeurmailadres van een gelieerde persoon verdacht is
        /// </summary>
        /// <param name="gp">Gelieerde persoon</param>
        /// <returns><c>True</c> als controle ervoor zorgde dat het adres gevlagd werd,
        /// <c>false</c> als dat niet het geval is</returns>
        private bool VoorkeurmailadresIsVerdacht(GelieerdePersoon gp)
        {
            var typeID = CommunicatieTypeEnum.Email;

            var query = from c in gp.Communicatie
                        where (c.CommunicatieType.ID == (int)typeID) && c.Voorkeur
                        select c.IsVerdacht;

            return(query.FirstOrDefault());
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Bepaalt het deelnemertype van een <paramref name="gelieerdePersoon"/> als hij voor een uitstap wordt
        /// ingeschreven die plaats vindt vanaf <paramref name="datum"/>.
        /// Als de person op dat moment lid is, dan is het deelnemer. Is de persoon op dat moment leiding, dan
        /// is het begeleiding, en anders is het onbekend.
        /// </summary>
        /// <param name="gelieerdePersoon">Gelieerde persoon met te bepalen DeelnemerType</param>
        /// <param name="datum">Datum voor deelnemertype</param>
        /// <returns>Als de persoon op de gegeven <paramref name="datum"/> lid is, dan Deelnemers. Is hij \
        /// leiding, dan Begeleiding. En anders onbekend.</returns>
        private DeelnemerType DeelnemerTypeBepalen(GelieerdePersoon gelieerdePersoon, DateTime datum)
        {
            int werkJaar = _groepsWerkJarenMgr.WerkJaarNationaal(datum);

            var lid =
                (from l in gelieerdePersoon.Lid where l.GroepsWerkJaar.WerkJaar == werkJaar select l).FirstOrDefault();

            return(lid == null
                ? DeelnemerType.Onbekend
                : lid is Kind ? DeelnemerType.Deelnemer : DeelnemerType.Begeleiding);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Updatet een bestaand persoon in Kipadmin: persoonsgegevens, en eventueel ook adressen en/of communicatie.
        ///
        /// </summary>
        /// <param name="gp">Gelieerde persoon, persoonsinfo</param>
        /// <remarks>Enkel voor het wijzigen van bestaande personen!</remarks>
        public void Updaten(GelieerdePersoon gp)
        {
            // Wijzigingen van personen met ad-nummer worden doorgesluisd
            // naar Kipadmin.

            Debug.Assert(gp.Persoon.InSync);

            var syncPersoon = MappingHelper.Map <Persoon, Kip.ServiceContracts.DataContracts.Persoon>(gp.Persoon);

            ServiceHelper.CallService <ISyncPersoonService>(svc => svc.PersoonUpdaten(syncPersoon));
        }
Ejemplo n.º 24
0
 /// <summary>
 /// Geeft <c>true</c> als de gegeven <paramref name="gelieerdePersoon"/> in zijn recentste groepswerkjaar
 /// lid kan worden, d.w.z. dat hij qua (Chiro)leeftijd in een afdeling past.
 /// </summary>
 /// <param name="gelieerdePersoon">een gelieerde persoon</param>
 /// <returns><c>true</c> als de gegeven <paramref name="gelieerdePersoon"/> in zijn recentste groepswerkjaar
 /// lid kan worden, d.w.z. dat hij qua (Chiro)leeftijd in een afdeling past.</returns>
 public bool KanInschrijvenAlsKind(GelieerdePersoon gelieerdePersoon)
 {
     try
     {
         return(AfdelingsJaarVoorstellen(gelieerdePersoon) != null);
     }
     catch (FoutNummerException)
     {
         return(false);
     }
 }
        public void RechtenOpLidAndereGroepTest()
        {
            // ARRANGE

            var ik = new Persoon {
                AdNummer = 1234
            };
            var gp = new GelieerdePersoon {
                Persoon = new Persoon()
            };

            var groep = new ChiroGroep
            {
                GebruikersRechtV2 = new[]
                {
                    new GebruikersRechtV2
                    {
                        Persoon            = ik,
                        VervalDatum        = DateTime.Today.AddDays(1),
                        IedereenPermissies = Permissies.Lezen
                    }
                },
                GelieerdePersoon = new[]
                {
                    gp
                }
            };

            gp.Groep = groep;

            var leiding = new Leiding
            {
                GelieerdePersoon = gp,
                GroepsWerkJaar   = new GroepsWerkJaar {
                    Groep = groep
                }
            };

            // Zet mock op voor het opleveren van gebruikersnaam
            var authenticatieManagerMock = new Mock <IAuthenticatieManager>();

            authenticatieManagerMock.Setup(src => src.AdNummerGet()).Returns(ik.AdNummer);
            Factory.InstantieRegistreren(authenticatieManagerMock.Object);

            // ACT

            var target = Factory.Maak <AutorisatieManager>();
            var actual = target.PermissiesOphalen(leiding);

            // ASSERT

            Assert.IsTrue(actual.HasFlag(Permissies.Lezen));
        }
        public void ValidatieLidVoorstelLeidingZonderEmail()
        {
            // Arrange
            // Ik maak een persoon, en een werkjaar met 2 afdelingen.  Maar dat is hier
            // niet relevant. Wat wel van belang is, is dat de persoon te jong is om
            // lid te worden. We verwachten dat het maken van een lidvoorstel crasht.

            var gwj = new GroepsWerkJaar {
                WerkJaar = 2014, Groep = new ChiroGroep()
            };                                                                           // Werkjaar 2012-2013

            var gp = new GelieerdePersoon
            {
                Persoon =
                    new Persoon
                {
                    GeboorteDatum = new DateTime(1995, 06, 21),
                    Geslacht      = GeslachtsType.Vrouw,
                },
                Groep         = gwj.Groep,
                PersoonsAdres = new PersoonsAdres(),
                Communicatie  = new List <CommunicatieVorm>
                {
                    // Enkel telefoonnummer; e-mailadres ontbreekt.
                    new CommunicatieVorm
                    {
                        CommunicatieType = new CommunicatieType {
                            ID = (int)CommunicatieTypeEnum.TelefoonNummer
                        }
                    }
                }
            };

            var lidVoorstel = new LidVoorstel
            {
                GelieerdePersoon         = gp,
                GroepsWerkJaar           = gwj,
                AfdelingsJaren           = new List <AfdelingsJaar>(),
                AfdelingsJarenIrrelevant = false,
                LeidingMaken             = true
            };

            var target = new LidVoorstelValidator();

            // Act

            var foutNummer = target.FoutNummer(lidVoorstel);

            // Assert

            Assert.AreEqual(FoutNummer.EMailVerplicht, foutNummer);
        }
Ejemplo n.º 27
0
        public void KoppelenVoorkeursCommunicatieTest()
        {
            // Arrange

            const int TESTGPID = 1234;      // arbitrair ID van een gelieerde persoon
            const int TESTCVID = 2345;      // en van een communicatievorm
            const int TESTCTID = 3;         // en diens communicatietype

            var testCommunicatieType = new CommunicatieType {
                ID = TESTCTID, Validatie = ".*"
            };
            var testCommunicatieVorm = new CommunicatieVorm
            {
                ID = TESTCVID,
                CommunicatieType = testCommunicatieType,
                Nummer           = "*****@*****.**",
                Voorkeur         = true
            };

            // Koppel gauw testCommunicatieVorm aan testGelieerdePersoon

            var testGelieerdePersoon = new GelieerdePersoon
            {
                ID           = TESTGPID,
                Persoon      = new Persoon(),
                Communicatie =
                    new EntityCollection <CommunicatieVorm>
                {
                    testCommunicatieVorm
                }
            };

            testCommunicatieVorm.GelieerdePersoon = testGelieerdePersoon;

            var target = Factory.Maak <CommunicatieVormenManager>();

            CommunicatieVorm nieuwecv = new CommunicatieVorm
            {
                CommunicatieType = testCommunicatieType, // e-mail
                ID       = 0,                            // nieuwe communicatievorm
                Nummer   = "*****@*****.**",             // arbitrair nieuw e-mailadres
                Voorkeur = true
            };

            // act

            target.Koppelen(testGelieerdePersoon, nieuwecv);

            // assert

            Assert.IsFalse(testCommunicatieVorm.Voorkeur);
        }
Ejemplo n.º 28
0
 public GebruikersRechtV2 GebruikersRechtOpEigenGroep(GelieerdePersoon gp)
 {
     return(new GebruikersRechtV2
     {
         Persoon = gp.Persoon,
         Groep = gp.Groep,
         PersoonsPermissies = Permissies.Bewerken,
         GroepsPermissies = Permissies.Bewerken,
         AfdelingsPermissies = Permissies.Bewerken,
         IedereenPermissies = Permissies.Bewerken,
         VervalDatum = DateTime.Now.AddDays(1)
     });
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Als de gegeven <paramref name="gelieerdePersoon"/> lid is in het huidige werkjaar van zijn groep, dan
 /// levert deze method het overeenkomstige lidobject op. In het andere geval <c>null</c>.
 /// </summary>
 /// <param name="gelieerdePersoon">Een gelieerde persoon</param>
 /// <returns>
 /// Als de gegeven <paramref name="gelieerdePersoon"/> lid is in het huidige werkjaar van zijn groep, dan
 /// levert deze method het overeenkomstige lidobject op. In het andere geval <c>null</c>.
 /// </returns>
 public Lid HuidigLidGet(GelieerdePersoon gelieerdePersoon)
 {
     if (!gelieerdePersoon.Groep.GroepsWerkJaar.Any())
     {
         // Als er geen groepswerkjaar is, dan is er ook geen lid.
         return(null);
     }
     return
         (gelieerdePersoon.Groep.GroepsWerkJaar.OrderByDescending(gwj => gwj.WerkJaar)
          .First()
          .Lid.Where(ld => !ld.NonActief)
          .FirstOrDefault(ld => ld.GelieerdePersoon.ID == gelieerdePersoon.ID));
 }
Ejemplo n.º 30
0
        public void InschrijvingVoorstellenTest()
        {
            // Arrange

            var gp = new GelieerdePersoon
            {
                Persoon =
                    new Persoon
                {
                    GeboorteDatum = new DateTime(1996, 03, 07),
                    Geslacht      = GeslachtsType.Vrouw,
                },
                PersoonsAdres = new PersoonsAdres(),
            };

            var gwj = new GroepsWerkJaar {
                WerkJaar = 2011, Groep = new ChiroGroep()
            };

            gp.Groep = gwj.Groep;

            var afdelingsJaar1 = new AfdelingsJaar
            {
                ID = 1,
                GeboorteJaarVan   = 1996,
                GeboorteJaarTot   = 1997,
                Geslacht          = GeslachtsType.Man,
                OfficieleAfdeling = new OfficieleAfdeling()
            };
            var afdelingsJaar2 = new AfdelingsJaar
            {
                ID = 2,
                GeboorteJaarVan   = 1996,
                GeboorteJaarTot   = 1997,
                Geslacht          = GeslachtsType.Vrouw,
                OfficieleAfdeling = new OfficieleAfdeling()
            };

            gwj.AfdelingsJaar.Add(afdelingsJaar1);
            gwj.AfdelingsJaar.Add(afdelingsJaar2);

            var target = Factory.Maak <LedenManager>();

            // Act

            var actual = target.InschrijvingVoorstellen(gp, gwj, false);

            // Assert

            Assert.AreEqual(actual.AfdelingsJaren[0], afdelingsJaar2);
        }