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)));
        }
Example #2
0
        public override async Task <ActionResult <KadastraalOnroerendeZaak> > CreerKadastraalOnroerendeZaak([FromBody] KadastraalOnroerendeZaakMetZakelijkGerechtigdenNieuw body)
        {
            var entity = mapper.Map <Domain.Entities.KadastraalOnroerendeZaak>(body);

            repository.Add(entity);

            var evt = eventFactory.CreateFrom(entity);

            var laatsteEventId = await producer.ProduceAsync("kadastraalonroerendezaken", evt);

            if (!string.IsNullOrWhiteSpace(laatsteEventId))
            {
                laatsteEventsRepository.Add(new Domain.LaatsteEvent
                {
                    KadastraalOnroerendeZaakIdentificatie = entity.Id,
                    EventIdentificatie = laatsteEventId
                });
            }

            return(Ok(mapper.Map <KadastraalOnroerendeZaak>(entity)));
        }