public async Task <QueryExecuteSubsetResult> ExecuteQueryExecuteSubsetAsync(QueryExecuteSubsetParams subsetParams) { return(await _rpc.InvokeWithParameterObjectAsync <QueryExecuteSubsetResult>("query/subset", subsetParams)); }
public async Task HandleAsync(SubmitCode command, KernelInvocationContext context) { if (!_connected) { return; } if (_queryCompletionHandler != null) { context.Display("Error: Another query is currently running. Please wait for that query to complete before re-running this cell."); return; } var completion = new TaskCompletionSource <bool>(); _queryCompletionHandler = async queryParams => { try { foreach (var batchSummary in queryParams.BatchSummaries) { foreach (var resultSummary in batchSummary.ResultSetSummaries) { var subsetParams = new QueryExecuteSubsetParams() { OwnerUri = _tempFileUri.ToString(), BatchIndex = batchSummary.Id, ResultSetIndex = resultSummary.Id, RowsStartIndex = 0, RowsCount = Convert.ToInt32(resultSummary.RowCount) }; var subsetResult = await _serviceClient.ExecuteQueryExecuteSubsetAsync(subsetParams); if (subsetResult.Message != null) { context.Display(subsetResult.Message); } else { var table = GetEnumerableTable(resultSummary.ColumnInfo, subsetResult.ResultSubset.Rows); context.Display(table); } } } completion.SetResult(true); } catch (Exception e) { completion.SetException(e); } }; try { var queryResult = await _serviceClient.ExecuteQueryStringAsync(_tempFileUri, command.Code); await completion.Task; } finally { _queryCompletionHandler = null; } }