Exemplo n.º 1
0
        public IngeschrevenPersonenBeperkt ZoekIngeschrevenPersonenOpBinnenlandsVerblijfsadres(ZoekIngeschrevenPersonenOpBinnenlandsVerblijfsadresFilter filter)
        {
            if (filter == null)
            {
                throw new FaultException("filter mag niet null zijn");
            }

            var ingeschrevenPersonen = Repository.SelecteerIngeschrevenPersonenVoorZoekenOpBinnenlandsVerblijfsadres();

            var retval = new IngeschrevenPersonenBeperkt();

            // wildcard search: naam openbare ruimte bevat string in filter
            if (filter.naamOpenbareRuimte.StartsWith("%") && filter.naamOpenbareRuimte.EndsWith("%"))
            {
                retval.AddRange(from i in ingeschrevenPersonen
                                where i.verblijfsadres != null &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).naamOpenbareRuimte.ToLowerInvariant().Contains(filter.naamOpenbareRuimte.ToLowerInvariant().Replace("%", "")) &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).huisnummer == filter.huisnummer
                                select i);
            }
            // wildcard search: naam openbare ruimte eindigt met string in filter
            else if (filter.naamOpenbareRuimte.StartsWith("%"))
            {
                retval.AddRange(from i in ingeschrevenPersonen
                                where i.verblijfsadres != null &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).naamOpenbareRuimte.ToLowerInvariant().EndsWith(filter.naamOpenbareRuimte.ToLowerInvariant().Replace("%", "")) &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).huisnummer == filter.huisnummer
                                select i);
            }
            // wildcard search: naam openbare ruimte begint met string in filter
            else if (filter.naamOpenbareRuimte.EndsWith("%"))
            {
                retval.AddRange(from i in ingeschrevenPersonen
                                where i.verblijfsadres != null &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).naamOpenbareRuimte.ToLowerInvariant().StartsWith(filter.naamOpenbareRuimte.ToLowerInvariant().Replace("%", "")) &&
                                ((NummeraanduidingBeperkt)i.verblijfsadres.adres).huisnummer == filter.huisnummer
                                select i);
            }
            // geen wildcard search
            else
            {
                retval.AddRange(ingeschrevenPersonen.Where(i => i.verblijfsadres != null &&
                                                           ((NummeraanduidingBeperkt)i.verblijfsadres.adres).naamOpenbareRuimte.ToLowerInvariant() == filter.naamOpenbareRuimte.ToLowerInvariant() &&
                                                           ((NummeraanduidingBeperkt)i.verblijfsadres.adres).huisnummer == filter.huisnummer));
            }

            return(retval);
        }
Exemplo n.º 2
0
        public IngeschrevenPersonenBeperkt RaadpleegBewoning(RaadpleegBewoningFilter filter)
        {
            var ingeschrevenPersonen = Repository.SelecteerIngeschrevenPersonenVoorRaadpleegBewoning(filter.periode);

            var retval = new IngeschrevenPersonenBeperkt();

            if (filter.inclusiefOverledenPersonen)
            {
                retval.AddRange(from persoon in ingeschrevenPersonen
                                where ((NummeraanduidingBeperkt)persoon.verblijfsadres.adres).identificatieNummeraanduiding == filter.identificatieNummeraanduiding
                                select persoon);
            }
            else
            {
                retval.AddRange(from persoon in ingeschrevenPersonen
                                where ((NummeraanduidingBeperkt)persoon.verblijfsadres.adres).identificatieNummeraanduiding == filter.identificatieNummeraanduiding &&
                                persoon.overlijden == null
                                select persoon);
            }
            // geen filtering op periode

            // IngeschrevenPersoon worden automatisch gedowncast naar IngeschrevenPersoonBeperkt
            return(retval);
        }