public override async Task <IActionResult> VervangZakelijkGerechtigde(string kadastraalOnroerendeZaakIdentificatie, string zakelijkGerechtigdeIdentificatie, [FromBody] ZakelijkGerechtigdeNieuw body) { var input = mapper.Map <Domain.Entities.ZakelijkGerechtigde>(body); var id = long.Parse(kadastraalOnroerendeZaakIdentificatie); var koz = await repository.GetAsync(id); if (koz == null) { return(NotFound($"Onbekend kadastraalOnroerendeZaakIdentificatie: {kadastraalOnroerendeZaakIdentificatie}")); } var zgId = long.Parse(zakelijkGerechtigdeIdentificatie); var zakelijkGerechtigde = koz.ZakelijkGerechtigden.SingleOrDefault(z => z.Id == zgId); if (zakelijkGerechtigde == null) { return(NotFound($"Onbekend zakelijkGerechtigdeIdentificatie: {zakelijkGerechtigdeIdentificatie}")); } zakelijkGerechtigde.Update(input); await repository.SaveChangesAsync(); var laatsteEvent = await laatsteEventsRepository.GetAsync(id); var evt = eventFactory.CreateFrom(koz, laatsteEvent); var laatsteEventId = await producer.ProduceAsync("kadastraalonroerendezaken", evt); if (!string.IsNullOrWhiteSpace(laatsteEventId)) { laatsteEvent.EventIdentificatie = laatsteEventId; await repository.SaveChangesAsync(); } return(Ok()); }
public override async Task <ActionResult <ZakelijkGerechtigde> > CreerZakelijkGerechtigde(string kadastraalOnroerendeZaakIdentificatie, [FromBody] ZakelijkGerechtigdeNieuw body) { var zakelijkGerechtigde = mapper.Map <Domain.Entities.ZakelijkGerechtigde>(body); var id = long.Parse(kadastraalOnroerendeZaakIdentificatie); var koz = await repository.GetAsync(id); if (koz == null) { return(NotFound($"Onbekend kadastraalOnroerendeZaakIdentificatie: {kadastraalOnroerendeZaakIdentificatie}")); } koz.CreerZakelijkGerechtigde(zakelijkGerechtigde); await repository.SaveChangesAsync(); var laatsteEvent = await laatsteEventsRepository.GetAsync(id); var evt = eventFactory.CreateFrom(koz, laatsteEvent); var laatsteEventId = await producer.ProduceAsync("kadastraalonroerendezaken", evt); if (!string.IsNullOrWhiteSpace(laatsteEventId)) { laatsteEvent.EventIdentificatie = laatsteEventId; await repository.SaveChangesAsync(); } return(Ok(mapper.Map <ZakelijkGerechtigde>(zakelijkGerechtigde))); }