/// <summary> /// Controleert of <paramref name="p"/> een geldige communicatievorm zou zijn /// voor het gegeven <paramref name="communicatieType"/> /// </summary> /// <param name="p">Telefoonnummer, e-mailadres,...</param> /// <param name="communicatieType">Een communicatietype</param> /// <returns><c>True</c> als <paramref name="p"/> een geldige communicatievorm zou zijn /// voor het gegeven <paramref name="communicatieType"/></returns> public bool IsGeldig(string p, CommunicatieType communicatieType) { var validator = new CommunicatieVormValidator(); return (validator.Valideer(new CommunicatieValidatieInfo { CommunicatieTypeValidatie = communicatieType.Validatie, Nummer = p })); }
public void TestOngeldigTelefoonnummerValideren() { // Arrange var cvValid = new CommunicatieVormValidator(); var comm = new CommunicatieVorm { CommunicatieType = new CommunicatieType { ID = (int)CommunicatieTypeEnum.TelefoonNummer, Validatie = @"^0[0-9]{1,2}\-[0-9]{2,3} ?[0-9]{2} ?[0-9]{2}$|^04[0-9]{2}\-[0-9]{2,3} ?[0-9]{2} ?[0-9]{2}$|^[+][0-9]*$" }, Nummer = "03/231.07.95" }; // Act bool vlag = cvValid.Valideer(comm); // Assert Assert.IsFalse(vlag); }
/// <summary> /// Koppelt een communicatievorm aan een gelieerde persoon. /// </summary> /// <param name="gelieerdePersoon"> /// De gelieerde persoon voor wie de communicatievorm toegevoegd of aangepast wordt /// </param> /// <param name="nieuweCommunicatieVorm"> /// De nieuwe gegevens voor de communicatievorm /// </param> /// <returns> /// De lijst van effectief gekoppelde communicatievormen. Als <paramref name="nieuweCommunicatieVorm"/> /// gezinsgebonden is, kunnen dat er meer zijn. /// </returns> /// <remarks> /// Als de communicatievorm de eerste van een bepaald type is, dan wordt dat ook de voorkeur. /// </remarks> public List <CommunicatieVorm> Koppelen(GelieerdePersoon gelieerdePersoon, CommunicatieVorm nieuweCommunicatieVorm) { // Opmerking: gebruik dit niet als referentie-implementatie: // Te veel rommel! var gekoppeld = new List <CommunicatieVorm>(); var cvValid = new CommunicatieVormValidator(); if (!cvValid.Valideer(nieuweCommunicatieVorm)) { throw new FoutNummerException(FoutNummer.ValidatieFout, string.Format(Resources.CommunicatieVormValidatieFeedback, nieuweCommunicatieVorm.Nummer, nieuweCommunicatieVorm.CommunicatieType.Omschrijving)); } // nieuweCommunicatieVorm kan hier nog geen ID hebben Debug.Assert(nieuweCommunicatieVorm.ID == 0); nieuweCommunicatieVorm.GelieerdePersoon = gelieerdePersoon; gelieerdePersoon.Communicatie.Add(nieuweCommunicatieVorm); gekoppeld.Add(nieuweCommunicatieVorm); if (nieuweCommunicatieVorm.IsGezinsgebonden) { // Beetje gepruts voor gezinsgebonden communicatie. Dit zit niet juist op database-niveau. (#1070) // Als er gezinsgebonden communicatie wordt toegevoegd, dan voegen we die hier toe aan alle andere // gezinsleden, of juister: adresgenoten. var alleAdresgenoten = gelieerdePersoon.Persoon.PersoonsAdres.Select(pa => pa.Adres) .SelectMany(adr => adr.PersoonsAdres) .Select(pa => pa.Persoon).ToList(); var mijnAdresGenoten = _autorisatieMgr.MijnGelieerdePersonen(alleAdresgenoten); // adresgenoten die ik niet zelf ben, en die het e-mailadres nog niet hebben. var relevanteAdresGenoten = (from gp in mijnAdresGenoten where gp.ID != gelieerdePersoon.ID && !gp.Communicatie.Any( cv => cv.CommunicatieType.ID == nieuweCommunicatieVorm.CommunicatieType.ID && String.Compare(cv.Nummer, nieuweCommunicatieVorm.Nummer, StringComparison.OrdinalIgnoreCase) == 0) select gp).ToList(); foreach (var adresgenoot in relevanteAdresGenoten) { var cvKloon = Kloon(nieuweCommunicatieVorm); cvKloon.GelieerdePersoon = adresgenoot; adresgenoot.Communicatie.Add(cvKloon); gekoppeld.Add(cvKloon); } } // Voorkeurscommunicatie zetten voor toegevoegde communicatievorm. // Opgelet: als de communicatievorm gezinsgebonden was, en voorkeur, dan zal die // bij de gezinsgenoten die hem nog niet hebben als voorkeurscommunicatie van dat // type toegevoegd worden. Dit is misschien gewenst, misschien ook niet. Maar // alleszins erg verwarrend. Zie ook #1070. foreach (var cv in gekoppeld) { bool eersteVanType = (from c in cv.GelieerdePersoon.Communicatie where c.CommunicatieType.ID == nieuweCommunicatieVorm.CommunicatieType.ID && !Equals(c, cv) select c).FirstOrDefault() == null; if (eersteVanType || cv.Voorkeur) { VoorkeurZetten(nieuweCommunicatieVorm); } } return(gekoppeld); }