public async Task SaveEventAndTipoAcomodacaoContextChangesAsync(IntegrationEvent evt) { var strategy = _administrativoContext.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _administrativoContext.Database.BeginTransaction()) { try { await _administrativoContext.SaveChangesAsync(); await _eventLogService.SaveEventAsync(evt, _administrativoContext.Database.CurrentTransaction.GetDbTransaction()); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); var sqlException = ex.InnerException as System.Data.SqlClient.SqlException; throw new Exception(sqlException.Number + "::" + sqlException.Message); } } }); }