internal async Task <Message> ReceiveAmqpMessageAsync(TimeSpan timeout) { if (Logging.IsEnabled) { Logging.Enter(this, $"{nameof(ReceiveAmqpMessageAsync)}"); } try { AmqpMessage amqpMessage = await _receivingAmqpLink.ReceiveMessageAsync(timeout).ConfigureAwait(false); Message message = null; if (amqpMessage != null) { message = AmqpIoTMessageConverter.AmqpMessageToMessage(amqpMessage); message.LockToken = new Guid(amqpMessage.DeliveryTag.Array).ToString(); } return(message); } catch (Exception e) when(!e.IsFatal()) { Exception ex = AmqpIoTExceptionAdapter.ConvertToIoTHubException(e, _receivingAmqpLink); if (ReferenceEquals(e, ex)) { throw; } else { if (ex is AmqpIoTResourceException) { _receivingAmqpLink.SafeClose(); throw new IotHubCommunicationException(ex.Message, ex); } throw ex; } } finally { if (Logging.IsEnabled) { Logging.Exit(this, $"{nameof(ReceiveAmqpMessageAsync)}"); } } }
private void OnDeviceMessageReceived(AmqpMessage amqpMessage) { Logging.Enter(this, amqpMessage, $"{nameof(OnDeviceMessageReceived)}"); try { Message message = null; if (amqpMessage != null) { message = AmqpIoTMessageConverter.AmqpMessageToMessage(amqpMessage); message.LockToken = new Guid(amqpMessage.DeliveryTag.Array).ToString(); } _onDeviceMessageReceived?.Invoke(message); } finally { Logging.Exit(this, amqpMessage, $"{nameof(OnDeviceMessageReceived)}"); } }
private void OnEventsReceived(AmqpMessage amqpMessage) { if (Logging.IsEnabled) { Logging.Enter(this, amqpMessage, $"{nameof(OnEventsReceived)}"); } try { Message message = AmqpIoTMessageConverter.AmqpMessageToMessage(amqpMessage); message.LockToken = new Guid(amqpMessage.DeliveryTag.Array).ToString(); _onEventsReceived?.Invoke(message); } finally { if (Logging.IsEnabled) { Logging.Exit(this, amqpMessage, $"{nameof(OnMethodReceived)}"); } } }
internal async Task <Message> ReceiveAmqpMessageAsync(TimeSpan timeout) { if (Logging.IsEnabled) { Logging.Enter(this, $"{nameof(ReceiveAmqpMessageAsync)}"); } var amqpMessage = await _receivingAmqpLink.ReceiveMessageAsync(timeout).ConfigureAwait(false); Message message = null; if (amqpMessage != null) { message = AmqpIoTMessageConverter.AmqpMessageToMessage(amqpMessage); message.LockToken = new Guid(amqpMessage.DeliveryTag.Array).ToString(); } if (Logging.IsEnabled) { Logging.Exit(this, $"{nameof(ReceiveAmqpMessageAsync)}"); } return(message); }