public IActionResult GedeeltelijkeUpdateInschrijving(Guid inschrijvingsId, [FromBody] JsonPatchDocument <InschrijvingVoorUpdateDto> patchDocument) { var inschrijvingVanRepo = _inschrijvingRepository.GetInschrijving(inschrijvingsId); if (inschrijvingVanRepo == null) { return(NotFound($"Inschrijving '{inschrijvingsId}' niet gevonden.")); } Guid inschrijvingsStatusVoorPatch = inschrijvingVanRepo.InschrijvingsstatusId.Value; var inschrijvingTePatchen = _mapper.Map <InschrijvingVoorUpdateDto>(inschrijvingVanRepo); patchDocument.ApplyTo(inschrijvingTePatchen, ModelState); if (!TryValidateModel(inschrijvingTePatchen)) { return(ValidationProblem(ModelState)); } _mapper.Map(inschrijvingTePatchen, inschrijvingVanRepo); // === START Controle voor manipulatie === // // === EINDE Controle voor manipulatie === // if (!_betaalmethodeRepository.BestaatBetaalmethode(inschrijvingVanRepo.BetaalmethodeId.Value)) { return(NotFound($"Betaalmethode '{inschrijvingVanRepo.BetaalmethodeId.Value}' niet gevonden.")); } if (!_inschrijvingsstatusRepository.BestaatInschrijvingsstatus(inschrijvingVanRepo.InschrijvingsstatusId.Value)) { return(NotFound($"Inschrijvingsstatus '{inschrijvingVanRepo.InschrijvingsstatusId.Value}' niet gevonden.")); } if (!_evenementRepository.BestaatEvenement(inschrijvingVanRepo.EvenementId.Value)) { return(NotFound($"Evenement '{inschrijvingVanRepo.EvenementId.Value}' niet gevonden.")); } if (inschrijvingVanRepo.LidId.HasValue) { if (!_lidRepository.BestaatLid(inschrijvingVanRepo.LidId.Value)) { return(NotFound($"Lid '{inschrijvingVanRepo.LidId.Value}' niet gevonden.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.Standnummer)) { return(Conflict($"Bij het plannen van een inschrijving moet een standnummer worden opgegeven.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.RedenAfkeuring)) { return(Conflict($"Bij het afkeuren van een inschrijving moet een reden tot afkeuring worden opgegeven.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id | inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (inschrijvingVanRepo.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Overschrijving().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.GestructureerdeMededeling)) { inschrijvingVanRepo.GestructureerdeMededeling = GestructureerdeMededeling.GetNieuweGestructureerdeMededeling(_inschrijvingRepository); } } if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.QRCode)) { inschrijvingVanRepo.QRCode = QRCode.GetNieuweQRCode(); } } // === EINDE Controle voor manipulatie === // // === START null waarden wegwerken === // if (!inschrijvingVanRepo.AantalWagens.HasValue) { inschrijvingVanRepo.AantalWagens = 0; } if (!inschrijvingVanRepo.AantalAanhangwagens.HasValue) { inschrijvingVanRepo.AantalAanhangwagens = 0; } if (!inschrijvingVanRepo.AantalMobilhomes.HasValue) { inschrijvingVanRepo.AantalMobilhomes = 0; } // === EINDE null waarden wegwerken === // _inschrijvingRepository.UpdatenInschrijving(inschrijvingVanRepo); _inschrijvingRepository.Opslaan(); if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id) { if (inschrijvingsStatusVoorPatch == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id) { _mailing.VerstuurMail_AanvraagGoedgekeurd(inschrijvingVanRepo); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id) { if (inschrijvingsStatusVoorPatch == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id) { _mailing.VerstuurMail_AanvraagAfgekeurd(inschrijvingVanRepo); } } //return NoContent(); var inschrijvingTeRetourneren = _mapper.Map <InschrijvingVoorRaadpleegDto>(inschrijvingVanRepo); return(CreatedAtRoute("GetInschrijving", new { inschrijvingsId = inschrijvingTeRetourneren.Id }, inschrijvingTeRetourneren)); }