private async Task OpenMethodsSenderLinkAsync(AmqpIotSession amqpIotSession, string correlationIdSuffix, CancellationToken cancellationToken) { if (_methodSendingLink == null || _methodSendingLink.IsClosing()) { _methodSendingLink?.SafeClose(); _methodSendingLink = await amqpIotSession .OpenMethodsSenderLinkAsync(_deviceIdentity, correlationIdSuffix, cancellationToken) .ConfigureAwait(false); if (_methodSenderLinkDisconnected == null) { _methodSenderLinkDisconnected = (obj, arg) => { amqpIotSession.SafeClose(); }; } _methodSendingLink.Closed += _methodSenderLinkDisconnected; if (Logging.IsEnabled) { Logging.Associate(this, _methodSendingLink, nameof(_methodSendingLink)); } } }
private async Task OpenMethodsSenderLinkAsync(AmqpIotSession amqpIotSession, string correlationIdSuffix, TimeSpan timeout) { if (_methodSendingLink == null || _methodSendingLink.IsClosing()) { _methodSendingLink?.SafeClose(); _methodSendingLink = await amqpIotSession.OpenMethodsSenderLinkAsync(_deviceIdentity, correlationIdSuffix, timeout).ConfigureAwait(false); _methodSendingLink.Closed += (obj, arg) => { amqpIotSession.SafeClose(); }; Logging.Associate(this, _methodSendingLink, nameof(_methodSendingLink)); } }