private async Task ExecuteWorkBodyAsync(ReceivedData receivedData) { try { _logger.LogDebug( Utils.LogMessages.DataflowEngine.Execution, receivedData.DeliveryTag); if (await _workBodyAsync(receivedData).ConfigureAwait(false)) { _logger.LogDebug( Utils.LogMessages.DataflowEngine.ExecutionSuccess, receivedData.DeliveryTag); receivedData.AckMessage(); } else { _logger.LogWarning( Utils.LogMessages.DataflowEngine.ExecutionFailure, receivedData.DeliveryTag); receivedData.NackMessage(true); } } catch (Exception ex) { _logger.LogWarning( Utils.LogMessages.DataflowEngine.ExecutionError, receivedData.DeliveryTag, ex.Message); receivedData.NackMessage(true); } }