public async Task <IActionResult> IncluirTipoSituacaoTipoAtividadeAcomodacao([FromBody] TipoSituacaoTipoAtividadeAcomodacaoItem tipoSituacaoTipoAtividadeToSave) { string msgRule = ""; _configuracaoContext.TipoSituacaoTipoAtividadeAcomodacaoItems.Add(tipoSituacaoTipoAtividadeToSave); //Create Integration Event to be published through the Event Bus var tipoSituacaoTipoAtividadeAcomodacaoSaveEvent = new TipoSituacaoTAAIncluirIE(tipoSituacaoTipoAtividadeToSave.Id_TipoSituacaoAcomodacao, tipoSituacaoTipoAtividadeToSave.Id_TipoAtividadeAcomodacao); try { // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction await _configuracaoIntegrationEventService.IncluirEventAndTipoSituacaoTipoAtividadeAcomodacaoContextChangesAsync(tipoSituacaoTipoAtividadeAcomodacaoSaveEvent); } catch (Exception e) { //Validações das CONSTRAINTS do BANCO if (ruleValidaTipoSituacaoTipoAtividadeAcomodacaoPK(e.Message, ref msgRule)) { return(BadRequest(msgRule)); } else { return(BadRequest(e.Message)); } } // Publish through the Event Bus and mark the saved event as published await _configuracaoIntegrationEventService.PublishThroughEventBusAsync(tipoSituacaoTipoAtividadeAcomodacaoSaveEvent); return(CreatedAtAction(nameof(IncluirTipoSituacaoTipoAtividadeAcomodacao), null)); }