public override async Task <TResponse> ClientStreamingServerHandler <TRequest, TResponse>(IAsyncStreamReader <TRequest> requestStream,
                                                                                                  ServerCallContext context,
                                                                                                  ClientStreamingServerMethod <TRequest, TResponse> continuation)
        {
            var validatingRequestStream = new ValidatingAsyncStreamReader <TRequest>(requestStream, request => ValidateRequest(request));

            return(await continuation(validatingRequestStream, context));
        }
        public override async Task DuplexStreamingServerHandler <TRequest, TResponse>(IAsyncStreamReader <TRequest> requestStream,
                                                                                      IServerStreamWriter <TResponse> responseStream,
                                                                                      ServerCallContext context,
                                                                                      DuplexStreamingServerMethod <TRequest, TResponse> continuation)
        {
            var validatingRequestStream = new ValidatingAsyncStreamReader <TRequest>(requestStream, request => ValidateRequest(request));

            await continuation(validatingRequestStream, responseStream, context);
        }