private async Task TerminateSequenceAsync(TimeSpan timeout) { ReliableMessagingVersion reliableMessagingVersion = Settings.ReliableMessagingVersion; if (reliableMessagingVersion == ReliableMessagingVersion.WSReliableMessagingFebruary2005) { _session.CloseSession(); Message message = WsrmUtilities.CreateTerminateMessage(Settings.MessageVersion, reliableMessagingVersion, _session.OutputID); await OnConnectionSendMessageAsync(message, timeout, MaskingMode.Handled); } else if (reliableMessagingVersion == ReliableMessagingVersion.WSReliableMessaging11) { CreateTerminateRequestor(); Message terminateReply = await _terminateRequestor.RequestAsync(timeout); if (terminateReply != null) { ProcessCloseOrTerminateReply(false, terminateReply); } } else { throw Fx.AssertAndThrow("Reliable messaging version not supported."); } }
private async Task CloseSequenceAsync(TimeSpan timeout) { CreateCloseRequestor(); Message closeReply = await _closeRequestor.RequestAsync(timeout); ProcessCloseOrTerminateReply(true, closeReply); }