async Task <Outcome> SendAmqpMessageAsync(AmqpMessage amqpMessage)
        {
            Outcome outcome;

            try
            {
                SendingAmqpLink eventSendingLink = await this.GetEventSendingLinkAsync();

                outcome = await eventSendingLink.SendMessageAsync(amqpMessage, IotHubConnection.GetNextDeliveryTag(ref this.eventsDeliveryTag), AmqpConstants.NullBinary, this.OperationTimeout);
            }
            catch (Exception exception)
            {
                if (exception.IsFatal())
                {
                    throw;
                }

                throw AmqpClientHelper.ToIotHubClientContract(exception);
            }

            return(outcome);
        }