예제 #1
0
        public static string GetNieuweGestructureerdeMededeling(IInschrijvingRepository inschrijvingRepository)
        {
            if (inschrijvingRepository == null)
            {
                throw new ArgumentNullException(nameof(inschrijvingRepository));
            }

            string gestructureerdeMededeling = "";
            bool   inschrijvingIsUniek       = false;
            int    aantalPogingen            = 0;

            do
            {
                aantalPogingen++;
                gestructureerdeMededeling = GetNieuweGestructureerdeMededeling();
                if (!string.IsNullOrWhiteSpace(gestructureerdeMededeling))
                {
                    InschrijvingenResourceParameters parameters = new InschrijvingenResourceParameters()
                    {
                        GestructureerdeMededeling = gestructureerdeMededeling
                    };

                    IEnumerable <Entities.Inschrijving> inschrijvingen = inschrijvingRepository.GetInschrijvingen(parameters);
                    if (inschrijvingen != null)
                    {
                        inschrijvingIsUniek = (inschrijvingen.Count() == 0);
                    }
                }
            } while (!inschrijvingIsUniek & (aantalPogingen < 10));

            if (inschrijvingIsUniek)
            {
                return(gestructureerdeMededeling);
            }
            else
            {
                return(string.Empty);
            }
        }
        public IEnumerable <Inschrijving> GetInschrijvingen(InschrijvingenResourceParameters inschrijvingenResourceParameters)
        {
            var collectie = _context.Inschrijvingen as IQueryable <Inschrijving>;

            if (inschrijvingenResourceParameters == null)
            {
                throw new ArgumentNullException(nameof(inschrijvingenResourceParameters));
            }

            if (string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Id) && string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Voornaam) && string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Achternaam) && string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Standnummer) && string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.GestructureerdeMededeling) && string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.QRCode) && !inschrijvingenResourceParameters.NogNietIngecheckt.HasValue && !inschrijvingenResourceParameters.Evenement.HasValue && !inschrijvingenResourceParameters.Inschrijvingsstatus.HasValue)
            {
                if (!inschrijvingenResourceParameters.SorteerMethode.HasValue)
                {
                    return(GetInschrijvingen());
                }
                else
                {
                    return(GetGesorteerdeInschrijvingen(inschrijvingenResourceParameters.SorteerMethode, collectie).ToList());
                }
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Id))
            {
                collectie = collectie.Where(i => i.Id.ToString().ToUpper().Contains(inschrijvingenResourceParameters.Id.ToUpper()));
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Voornaam))
            {
                collectie = collectie.Where(i => i.Voornaam.ToUpper().Contains(inschrijvingenResourceParameters.Voornaam.ToUpper()));
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Achternaam))
            {
                collectie = collectie.Where(i => i.Achternaam.ToUpper().Contains(inschrijvingenResourceParameters.Achternaam.ToUpper()));
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.Standnummer))
            {
                collectie = collectie.Where(i => i.Standnummer.ToUpper().Contains(inschrijvingenResourceParameters.Standnummer.ToUpper()));
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.GestructureerdeMededeling))
            {
                collectie = collectie.Where(i => i.GestructureerdeMededeling.ToUpper() == inschrijvingenResourceParameters.GestructureerdeMededeling.ToUpper());
            }

            if (!string.IsNullOrWhiteSpace(inschrijvingenResourceParameters.QRCode))
            {
                collectie = collectie.Where(i => i.QRCode.ToUpper() == inschrijvingenResourceParameters.QRCode.ToUpper());
            }

            if (inschrijvingenResourceParameters.Evenement.HasValue)
            {
                collectie = collectie.Where(i => i.EvenementId == inschrijvingenResourceParameters.Evenement);
            }

            if (inschrijvingenResourceParameters.Inschrijvingsstatus.HasValue)
            {
                collectie = collectie.Where(i => i.InschrijvingsstatusId == inschrijvingenResourceParameters.Inschrijvingsstatus);
            }

            if (inschrijvingenResourceParameters.NogNietIngecheckt.HasValue && inschrijvingenResourceParameters.NogNietIngecheckt.Value)
            {
                var collectieAlsList = collectie.ToList();
                var nieuweCollectie  = new List <Inschrijving>();
                for (int i = 0; i < collectieAlsList.Count(); i++)
                {
                    if (_checkInRepository.GetAantalCheckInsVanInschrijving(collectieAlsList[i].Id) == 0)
                    {
                        nieuweCollectie.Add(collectieAlsList[i]);
                    }
                }
                collectie = nieuweCollectie.AsQueryable() as IQueryable <Inschrijving>;
            }

            collectie = GetGesorteerdeInschrijvingen(inschrijvingenResourceParameters.SorteerMethode, collectie);

            return(collectie.ToList());
        }
        public ActionResult <IEnumerable <InschrijvingVoorRaadpleegDto> > GetInschrijvingen([FromQuery] InschrijvingenResourceParameters inschrijvingenResourceParameters)
        {
            var inschrijvingenVanRepo = _inschrijvingRepository.GetInschrijvingen(inschrijvingenResourceParameters);

            return(Ok(_mapper.Map <IEnumerable <InschrijvingVoorRaadpleegDto> >(inschrijvingenVanRepo)));
        }