private async ValueTask ExecuteResolverPipelineAsync() { await _context.ResolverPipeline(_context).ConfigureAwait(false); switch (_context.Result) { case IQueryable queryable: _context.Result = await Task.Run(() => { var items = new List <object?>(); foreach (object?o in queryable) { items.Add(o); } return(items); }); break; case IError error: _context.ReportError(error); _context.Result = null; break; case IEnumerable <IError> errors: foreach (IError error in errors) { _context.ReportError(error); } _context.Result = null; break; } }
private async ValueTask ExecuteResolverPipelineAsync(CancellationToken cancellationToken) { await _context.ResolverPipeline(_context).ConfigureAwait(false); switch (_context.Result) { case IExecutable executable: _context.Result = await executable .ToListAsync(cancellationToken) .ConfigureAwait(false); break; case IQueryable queryable: _context.Result = await Task.Run(() => { var items = new List <object?>(); foreach (object?o in queryable) { items.Add(o); if (cancellationToken.IsCancellationRequested) { break; } } return(items); }, cancellationToken); break; case IError error: _context.ReportError(error); _context.Result = null; break; case IEnumerable <IError> errors: foreach (IError error in errors) { _context.ReportError(error); } _context.Result = null; break; } }