public async Task <IActionResult> Post([FromBody] OperationRequest request) { var stream = await _queryStreamService.QueryAsync(new Query { Document = request.Query, Variables = request.Variables, OperationName = request.OperationName }, Request.HttpContext.RequestAborted); var result = await stream.Reader.ReadAsync(); return(Ok(result)); }
public async Task <ActionResult <ExecutionResult> > Get(OperationRequest operation) { var stream = await _query.QueryAsync( new Query { Document = operation.Query, Variables = operation.Variables, OperationName = operation.OperationName }, HttpContext.RequestAborted); var result = await stream.Reader.ReadAsync(HttpContext.RequestAborted); return(Ok(result)); }
public ChannelReader <ExecutionResult> QueryAsync( QueryRequest query, CancellationToken cancellationToken) { var channel = Channel.CreateUnbounded <ExecutionResult>(); var _ = Task.Run(async() => { var result = await _queryStreamService.QueryAsync(new Query() { Document = Parser.ParseDocument(query.Query), OperationName = query.OperationName, Extensions = query.Extensions, Variables = query.Variables }, cancellationToken); var __ = result.Reader.WriteTo(channel.Writer); }, CancellationToken.None); return(channel.Reader); }