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); }
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); }