public AmqpClientLink CreateReceivingLink(Address address)
        {
            ReceivingLink = CreateLink();
            ReceivingLink.AmqpLinkSettings.SettleType = SettleMode.SettleOnDispose;
            ReceivingLink.AmqpLinkSettings.Role       = true; // receiving link
            ReceivingLink.AmqpLinkSettings.Source     = new Source
            {
                Address = address
            };

            return(ReceivingLink);
        }
        private static async Task CreateLinksAsync(AmqpClientConnection connection, string linkEndpoint, string productInfo)
        {
            AmqpClientSession amqpDeviceSession = connection.CreateSession();
            await amqpDeviceSession.OpenAsync(s_timeoutConstant).ConfigureAwait(false);

            AmqpClientLink amqpReceivingLink = amqpDeviceSession.CreateReceivingLink(linkEndpoint);

            amqpReceivingLink.AddClientVersion(productInfo);
            amqpReceivingLink.AddApiVersion(ClientApiVersionHelper.ApiVersion);

            await amqpReceivingLink.OpenAsync(s_timeoutConstant).ConfigureAwait(false);

            AmqpClientLink amqpSendingLink = amqpDeviceSession.CreateSendingLink(linkEndpoint);

            amqpSendingLink.AddClientVersion(productInfo);
            amqpSendingLink.AddApiVersion(ClientApiVersionHelper.ApiVersion);

            await amqpSendingLink.OpenAsync(s_timeoutConstant).ConfigureAwait(false);
        }