private void CompleteValue(bool success, CancellationToken cancellationToken) { object?completedValue = null; try { // we will only try to complete the resolver value if there are no known errors. if (success) { if (ValueCompletion.TryComplete( _operationContext, _context, _context.Path, _context.Field.Type, _context.Result, out completedValue) && !_context.Field.Type.IsLeafType() && completedValue is IHasResultDataParent result) { result.Parent = _context.ResultMap; } } } catch (OperationCanceledException) { // If we run into this exception the request was aborted. // In this case we do nothing and just return. return; } catch (Exception ex) { if (cancellationToken.IsCancellationRequested) { // if cancellation is request we do no longer report errors to the // operation context. return; } _context.ReportError(ex); _context.Result = null; } if (completedValue is null && _context.Field.Type.IsNonNullType()) { // if we detect a non-null violation we will stash it for later. // the non-null propagation is delayed so that we can parallelize better. _operationContext.Result.AddNonNullViolation( _context.FieldSelection, _context.Path, _context.ResultMap); }
private void CompleteValue(bool success) { object?completedValue = null; try { // we will only try to complete the resolver value if there are no known errors. if (success) { if (ValueCompletion.TryComplete( _operationContext, _context, _context.Path, _context.Field.Type, _context.Result, out completedValue) && !_context.Field.Type.IsLeafType() && completedValue is IHasResultDataParent result) { result.Parent = _context.ResultMap; } } } catch (Exception ex) { _context.ReportError(ex); _context.Result = null; } if (completedValue is null && _context.Field.Type.IsNonNullType()) { // if we detect a non-null violation we will stash it for later. // the non-null propagation is delayed so that we can parallelize better. _operationContext.Result.AddNonNullViolation( _context.FieldSelection, _context.Path, _context.ResultMap); }