private async Task SendCloseMessageAsync(Exception error = null)
        {
            var closeHeader = _headerFactory.CreateChannelCloseHeader(
                ChannelId,
                error == null
                    ? CompletionHeader.Completed
                    : error is OperationCanceledException
                        ? CompletionHeader.Canceled
                        : CompletionHeader.Failed(GetErrorHeader(error)));

            await SendAsync(closeHeader).ConfigureAwait(false);
        }
Exemplo n.º 2
0
        private async Task CloseConnectionAsync(Exception error, IWriteOnlyChannel <TransportMessage> output)
        {
            ITransportConnectionCloseHeader closeHeader;

            if (error is OperationCanceledException)
            {
                closeHeader = _transportHeaderFactory.CreateConnectionCloseHeader(CompletionHeader.Canceled);
            }
            else
            {
                closeHeader = _transportHeaderFactory.CreateConnectionCloseHeader(CompletionHeader.Failed(GetErrorHeader(error)));
            }
            await SendAsync(new TransportMessage(closeHeader), output).ConfigureAwait(false);
        }