public ActionResult <IEnumerable <CheckInVoorRaadpleegDto> > GetCheckIns([FromQuery] CheckInsResourceParameters checkInsResourceParameters)
        {
            if (checkInsResourceParameters != null)
            {
                if (checkInsResourceParameters.Inschrijving.HasValue)
                {
                    if (!_inschrijvingRepository.BestaatInschrijving(checkInsResourceParameters.Inschrijving.Value))
                    {
                        return(NotFound($"Inschrijving '{checkInsResourceParameters.Inschrijving.Value}' niet gevonden."));
                    }
                }

                if (checkInsResourceParameters.Lid.HasValue)
                {
                    if (!_lidRepository.BestaatLid(checkInsResourceParameters.Lid.Value))
                    {
                        return(NotFound($"Lid '{checkInsResourceParameters.Lid.Value}' niet gevonden."));
                    }
                }

                if (checkInsResourceParameters.CheckInMomentStartPeriode.HasValue && checkInsResourceParameters.CheckInMomentEindPeriode.HasValue)
                {
                    if (checkInsResourceParameters.CheckInMomentStartPeriode > checkInsResourceParameters.CheckInMomentEindPeriode)
                    {
                        return(BadRequest("De opgegeven periode is ongeldig."));
                    }
                }
            }

            var checkInsVanRepo = _checkInRepository.GetCheckIns(checkInsResourceParameters);

            return(Ok(_mapper.Map <IEnumerable <CheckInVoorRaadpleegDto> >(checkInsVanRepo)));
        }
        public IEnumerable <CheckIn> GetCheckIns(CheckInsResourceParameters checkInenResourceParameters)
        {
            if (checkInenResourceParameters == null)
            {
                throw new ArgumentNullException(nameof(checkInenResourceParameters));
            }

            if (!checkInenResourceParameters.Inschrijving.HasValue && !checkInenResourceParameters.Lid.HasValue && !checkInenResourceParameters.CheckInMomentStartPeriode.HasValue && !checkInenResourceParameters.CheckInMomentEindPeriode.HasValue)
            {
                return(GetCheckIns());
            }

            if (!checkInenResourceParameters.Inschrijving.HasValue)
            {
                if (checkInenResourceParameters.Inschrijving == Guid.Empty)
                {
                    throw new ArgumentNullException(nameof(checkInenResourceParameters.Inschrijving));
                }
            }

            if (!checkInenResourceParameters.Lid.HasValue)
            {
                if (checkInenResourceParameters.Lid == Guid.Empty)
                {
                    throw new ArgumentNullException(nameof(checkInenResourceParameters.Lid));
                }
            }

            if (checkInenResourceParameters.CheckInMomentStartPeriode.HasValue && checkInenResourceParameters.CheckInMomentEindPeriode.HasValue)
            {
                if (checkInenResourceParameters.CheckInMomentStartPeriode > checkInenResourceParameters.CheckInMomentEindPeriode)
                {
                    throw new ArgumentException("De opgegeven periode is ongeldig.");
                }
            }

            var collectie = _context.CheckIns as IQueryable <CheckIn>;

            if (checkInenResourceParameters.Inschrijving.HasValue)
            {
                collectie = collectie.Where(c => c.InschrijvingsId == checkInenResourceParameters.Inschrijving);
            }

            if (checkInenResourceParameters.Lid.HasValue)
            {
                collectie = collectie.Where(c => c.LidId == checkInenResourceParameters.Lid);
            }

            if (checkInenResourceParameters.CheckInMomentStartPeriode.HasValue)
            {
                collectie = collectie.Where(c => c.CheckInMoment >= checkInenResourceParameters.CheckInMomentStartPeriode);
            }

            if (checkInenResourceParameters.CheckInMomentEindPeriode.HasValue)
            {
                collectie = collectie.Where(c => c.CheckInMoment <= checkInenResourceParameters.CheckInMomentEindPeriode);
            }

            return(collectie.OrderBy(c => c.CheckInMoment).ToList());
        }