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 ActionResult <IEnumerable <BetaaltransactieVoorRaadpleegDto> > GetBetaaltransacties([FromQuery] BetaaltransactiesResourceParameters betaaltransactiesResourceParameters)
        {
            if (betaaltransactiesResourceParameters != null)
            {
                if (betaaltransactiesResourceParameters.Inschrijving.HasValue)
                {
                    if (!_inschrijvingRepository.BestaatInschrijving(betaaltransactiesResourceParameters.Inschrijving.Value))
                    {
                        return(NotFound($"Inschrijving '{betaaltransactiesResourceParameters.Inschrijving.Value}' niet gevonden."));
                    }
                }

                if (betaaltransactiesResourceParameters.Betaalmethode.HasValue)
                {
                    if (!_betaalmethodeRepository.BestaatBetaalmethode(betaaltransactiesResourceParameters.Betaalmethode.Value))
                    {
                        return(NotFound($"Betaalmethode '{betaaltransactiesResourceParameters.Betaalmethode.Value}' niet gevonden."));
                    }
                }

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

            var BetaaltransactiesVanRepo = _betaaltransactieRepository.GetBetaaltransacties(betaaltransactiesResourceParameters);

            return(Ok(_mapper.Map <IEnumerable <BetaaltransactieVoorRaadpleegDto> >(BetaaltransactiesVanRepo)));
        }
        public ActionResult <LidVoorRaadpleegDto> ToevoegenLid([FromBody] LidVoorAanmaakDto lid)
        {
            var lidEntity = _mapper.Map <Entities.Lid>(lid);

            // === START Controle voor manipulatie === //
            if (_lidRepository.BestaatLid(lidEntity.Email))
            {
                return(Conflict($"Er bestaat reeds een lid met dit e-mailadres."));
            }
            // === EINDE Controle voor manipulatie === //

            _lidRepository.ToevoegenLid(lidEntity);
            _lidRepository.Opslaan();

            var lidTeRetourneren = _mapper.Map <LidVoorRaadpleegDto>(lidEntity);

            return(CreatedAtRoute("GetLid", new { lidId = lidTeRetourneren.Id }, lidTeRetourneren));
        }
        public ActionResult <InschrijvingVoorRaadpleegDto> ToevoegenInschrijving([FromBody] InschrijvingVoorAanmaakDto inschrijving)
        {
            var inschrijvingEntity = _mapper.Map <Entities.Inschrijving>(inschrijving);

            inschrijvingEntity.DatumInschrijving = DateTime.UtcNow.AddHours(2);

            // === START Controle voor manipulatie === // // === EINDE Controle voor manipulatie === //
            if (!_betaalmethodeRepository.BestaatBetaalmethode(inschrijvingEntity.BetaalmethodeId.Value))
            {
                return(NotFound($"Betaalmethode '{inschrijvingEntity.BetaalmethodeId.Value}' niet gevonden."));
            }

            if (!_inschrijvingsstatusRepository.BestaatInschrijvingsstatus(inschrijvingEntity.InschrijvingsstatusId.Value))
            {
                return(NotFound($"Inschrijvingsstatus '{inschrijvingEntity.InschrijvingsstatusId.Value}' niet gevonden."));
            }

            if (!_evenementRepository.BestaatEvenement(inschrijvingEntity.EvenementId.Value))
            {
                return(NotFound($"Evenement '{inschrijvingEntity.EvenementId.Value}' niet gevonden."));
            }

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

            if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id)
            {
                if (string.IsNullOrWhiteSpace(inschrijvingEntity.Standnummer))
                {
                    return(Conflict($"Bij het plannen van een inschrijving moet een standnummer worden opgegeven."));
                }
            }

            if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id)
            {
                if (string.IsNullOrWhiteSpace(inschrijvingEntity.RedenAfkeuring))
                {
                    return(Conflict($"Bij het afkeuren van een inschrijving moet een reden tot afkeuring worden opgegeven."));
                }
            }

            if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id | inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id)
            {
                if (inschrijvingEntity.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Overschrijving().Id)
                {
                    if (string.IsNullOrWhiteSpace(inschrijvingEntity.GestructureerdeMededeling))
                    {
                        inschrijvingEntity.GestructureerdeMededeling = GestructureerdeMededeling.GetNieuweGestructureerdeMededeling(_inschrijvingRepository);
                    }
                }

                if (string.IsNullOrWhiteSpace(inschrijvingEntity.QRCode))
                {
                    inschrijvingEntity.QRCode = QRCode.GetNieuweQRCode();
                }
            }
            // === EINDE Controle voor manipulatie === //

            // === START null waarden wegwerken === //
            if (!inschrijvingEntity.AantalWagens.HasValue)
            {
                inschrijvingEntity.AantalWagens = 0;
            }
            if (!inschrijvingEntity.AantalAanhangwagens.HasValue)
            {
                inschrijvingEntity.AantalAanhangwagens = 0;
            }
            if (!inschrijvingEntity.AantalMobilhomes.HasValue)
            {
                inschrijvingEntity.AantalMobilhomes = 0;
            }
            // === EINDE null waarden wegwerken === //



            _inschrijvingRepository.ToevoegenInschrijving(inschrijvingEntity);
            _inschrijvingRepository.Opslaan();

            if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id)
            {
                _mailing.VerstuurMail_NieuweAanvraag(inschrijvingEntity);
            }

            var inschrijvingTeRetourneren = _mapper.Map <InschrijvingVoorRaadpleegDto>(inschrijvingEntity);

            return(CreatedAtRoute("GetInschrijving", new { inschrijvingsId = inschrijvingTeRetourneren.Id }, inschrijvingTeRetourneren));
        }