public async Task DuplexStreamingServerHandler(IAsyncStreamReader <TRequest> requestStream, IServerStreamWriter <TResponse> responseStream, DuplexStreamingServerMethod <TRequest, TResponse> continuation) { try { var tracingRequestStream = new TracingAsyncStreamReader <TRequest>(requestStream, _streamActions); var tracingResponseStream = new TracingServerStreamWriter <TResponse>(responseStream, _logger.Response); await continuation(tracingRequestStream, tracingResponseStream, _context).ConfigureAwait(false); _logger.FinishSuccess(); } catch (Exception ex) { _logger.FinishException(ex); throw; } }
public async Task ServerStreamingServerHandler(TRequest request, IServerStreamWriter <TResponse> responseStream, ServerStreamingServerMethod <TRequest, TResponse> continuation) { try { var tracingResponseStream = new TracingServerStreamWriter <TResponse>(responseStream, _logger.Response); _logger.Request(request); await continuation(request, tracingResponseStream, _context).ConfigureAwait(false); _logger.FinishSuccess(); } catch (Exception ex) { _logger.FinishException(ex); throw; } }