private ArgumentValue CreateArgumentValue( string responseName, IInputField argument, ArgumentNode?argumentValue, IValueNode value, bool isDefaultValue) { ArgumentNonNullValidator.ValidationResult validationResult = ArgumentNonNullValidator.Validate(argument, value, Path.New(argument.Name)); if (argumentValue is not null && validationResult.HasErrors) { return(new ArgumentValue( argument, ErrorHelper.ArgumentNonNullError( argumentValue, responseName, validationResult))); } if (argument.Type.IsLeafType() && CanBeCompiled(value)) { try { return(new ArgumentValue( argument, value.GetValueKind(), true, isDefaultValue, ParseLiteral(argument, value), value)); } catch (SerializationException ex) { if (argumentValue is not null) { return(new ArgumentValue( argument, ErrorHelper.ArgumentValueIsInvalid(argumentValue, responseName, ex))); } return(new ArgumentValue( argument, ErrorHelper.ArgumentDefaultValueIsInvalid(responseName, ex))); } } return(new ArgumentValue( argument, value.GetValueKind(), false, isDefaultValue, null, value)); }
public static IError ArgumentNonNullError( ArgumentNode argument, string responseName, ArgumentNonNullValidator.ValidationResult validationResult) { return(ErrorBuilder.New() .SetMessage( ErrorHelper_ArgumentNonNullError_Message, argument.Name.Value) .AddLocation(argument) .SetExtension("responseName", responseName) .SetExtension("errorPath", validationResult.Path) .Build()); }
public static IError ArgumentNonNullError( ArgumentNode argument, string responseName, ArgumentNonNullValidator.ValidationResult validationResult) { return(ErrorBuilder.New() .SetMessage( "Detected a non-null violation in argument `{0}`.", argument.Name.Value) .AddLocation(argument) .SetExtension("responseName", responseName) .SetExtension("errorPath", validationResult.Path) .Build()); }