private static void DeclareFields(
            ITypeBindingInfo bindingInfo,
            IInputObjectTypeDescriptor typeDescriptor,
            InputObjectTypeDefinitionNode node)
        {
            foreach (InputValueDefinitionNode inputField in node.Fields)
            {
                bindingInfo.TrackField(inputField.Name.Value);

                IInputFieldDescriptor descriptor = typeDescriptor
                                                   .Field(inputField.Name.Value)
                                                   .Description(inputField.Description?.Value)
                                                   .Type(inputField.Type)
                                                   .DefaultValue(inputField.DefaultValue)
                                                   .SyntaxNode(inputField);

                if (bindingInfo.TryGetFieldProperty(
                        inputField.Name.Value,
                        MemberKind.InputObjectField,
                        out PropertyInfo p))
                {
                    descriptor.Extend().OnBeforeCreate(
                        t => t.Property = p);
                }

                foreach (DirectiveNode directive in inputField.Directives)
                {
                    descriptor.Directive(directive);
                }
            }
        }
示例#2
0
 public override void OnConfigure(
     IDescriptorContext context,
     IInputFieldDescriptor descriptor,
     MemberInfo member)
 {
     descriptor.Name("bar");
 }
示例#3
0
 public override void OnConfigure(
     IDescriptorContext context,
     IInputFieldDescriptor descriptor,
     MemberInfo member)
 {
     descriptor.DefaultValue(Value);
 }
    public static IInputFieldDescriptor ID(
        this IInputFieldDescriptor descriptor,
        NameString typeName = default)
    {
        if (descriptor is null)
        {
            throw new ArgumentNullException(nameof(descriptor));
        }

        RelayIdFieldHelpers.ApplyIdToField(descriptor, typeName);

        return(descriptor);
    }
        public static IInputFieldDescriptor ID(
            this IInputFieldDescriptor descriptor,
            NameString typeName = default)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.Extend().OnBeforeCreate(RewriteInputFieldType);
            descriptor.Extend().OnBeforeCompletion(
                (c, d) => AddSerializerToInputField(c, d, typeName));

            return(descriptor);
        }
示例#6
0
        private static void DeclareFields(
            ITypeBindingInfo bindingInfo,
            IInputObjectTypeDescriptor typeDescriptor,
            InputObjectTypeDefinitionNode node)
        {
            foreach (InputValueDefinitionNode inputField in node.Fields)
            {
                bindingInfo.TrackField(inputField.Name.Value);

                IInputFieldDescriptor descriptor = typeDescriptor
                                                   .Field(inputField.Name.Value)
                                                   .Description(inputField.Description?.Value)
                                                   .Type(inputField.Type)
                                                   .SyntaxNode(inputField);

                if (inputField.DefaultValue is { })
        /// <summary>
        /// Specifies the type of an input field with GraphQL SDL type syntax.
        /// </summary>
        /// <param name="descriptor">
        /// The input field descriptor.
        /// </param>
        /// <param name="typeSyntax">
        /// The GraphQL SDL type syntax.
        /// </param>
        /// <returns>
        /// Returns the input field descriptor for configuration chaining.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="descriptor"/> is <c>null</c>.
        /// <paramref name="typeSyntax"/> is <c>null</c>.
        /// </exception>
        /// <exception cref="SyntaxException">
        /// The GraphQL SDL type syntax is invalid.
        /// </exception>
        public static IInputFieldDescriptor Type(
            this IInputFieldDescriptor descriptor,
            string typeSyntax)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            if (typeSyntax is null)
            {
                throw new ArgumentNullException(nameof(typeSyntax));
            }

            return(descriptor.Type(Utf8GraphQLParser.Syntax.ParseTypeReference(typeSyntax)));
        }
        private static void DeclareFields(
            ITypeBindingInfo bindingInfo,
            IReadOnlySchemaOptions schemaOptions,
            IInputObjectTypeDescriptor typeDescriptor,
            InputObjectTypeExtensionNode node)
        {
            foreach (InputValueDefinitionNode inputField in node.Fields)
            {
                bindingInfo.TrackField(inputField.Name.Value);

                IInputFieldDescriptor descriptor = typeDescriptor
                                                   .Field(inputField.Name.Value)
                                                   .Description(inputField.Description?.Value)
                                                   .Type(inputField.Type)
                                                   .SyntaxNode(schemaOptions.PreserveSyntaxNodes ? inputField : null);

                if (inputField.DefaultValue is { })
        private void DeclareFields(
            IInputObjectTypeDescriptor typeDescriptor,
            InputObjectTypeDefinitionNode node)
        {
            foreach (InputValueDefinitionNode inputField in node.Fields)
            {
                IInputFieldDescriptor descriptor = typeDescriptor
                                                   .Field(inputField.Name.Value)
                                                   .Description(inputField.Description?.Value)
                                                   .Type(inputField.Type)
                                                   .DefaultValue(inputField.DefaultValue)
                                                   .SyntaxNode(inputField);

                foreach (DirectiveNode directive in inputField.Directives)
                {
                    descriptor.Directive(directive);
                }
            }
        }
 public abstract void OnConfigure(
     IDescriptorContext context,
     IInputFieldDescriptor descriptor,
     MemberInfo member);
 public abstract void OnConfigure(IInputFieldDescriptor descriptor);
示例#12
0
 public override void OnConfigure(IInputFieldDescriptor descriptor)
 {
     descriptor.Name("bar");
 }