private void ValidateRequiredArguments( ISyntaxNode parent, IEnumerable <ArgumentNode> providedArguments, IFieldCollection <IInputField> arguments) { ILookup <string, ArgumentNode> providedArgumentLookup = providedArguments.ToLookup(t => t.Name.Value); foreach (InputField requiredArgument in arguments .Where(t => IsRequiredArgument(t))) { ArgumentNode providedArgument = providedArgumentLookup[requiredArgument.Name] .FirstOrDefault(); if (providedArgument == null || providedArgument.Value is NullValueNode) { Errors.Add(new ValidationError( $"The argument `{requiredArgument.Name}` is required " + "and does not allow null values.", parent)); } } }