private void ParseInternal( JsonDocument document, IOperationResultBuilder resultBuilder) { if (document.RootElement.TryGetProperty( _data, out JsonElement data)) { resultBuilder.SetData(ParseData(data)); } if (document.RootElement.TryGetProperty( _errors, out JsonElement errors)) { resultBuilder.AddErrors(ParseErrors(errors)); } if (TryParseExtensions( document.RootElement, out IReadOnlyDictionary <string, object?>?extensions)) { resultBuilder.AddExtensions(extensions !); } if (!resultBuilder.IsDataOrErrorModified) { resultBuilder.AddError(ErrorBuilder.New() .SetMessage( "The specified document is not a valid " + "GraphQL response document. Ensure that either " + "`data` or `errors` os provided. The document " + "parses property names case-sensitive.") .SetCode(ErrorCodes.InvalidResponse) .Build()); } }
private async Task ParseInternalAsync( Stream stream, IOperationResultBuilder resultBuilder, CancellationToken cancellationToken) { using (JsonDocument document = await JsonDocument.ParseAsync(stream) .ConfigureAwait(false)) { if (document.RootElement.TryGetProperty( _data, out JsonElement data)) { resultBuilder.SetData(ParserData(data)); } if (document.RootElement.TryGetProperty( _errors, out JsonElement errors)) { resultBuilder.AddErrors(ParseErrors(errors)); } if (TryParseExtensions( document.RootElement, out IReadOnlyDictionary <string, object?>?extensions)) { resultBuilder.AddExtensions(extensions !); } if (!resultBuilder.IsDataOrErrorModified) { resultBuilder.AddError(ErrorBuilder.New() .SetMessage( "The specified document is not a valid " + "GraphQL response document. Ensure that either " + "`data` or `errors` os provided. The document " + "parses property names case-sensitive.") .SetCode(ErrorCodes.InvalidResponse) .Build()); } } }