protected override void OnCreateDefinition(
            ObjectTypeDefinition definition)
        {
            if (Definition.FieldBindingType is not null)
            {
                Context.TypeInspector.ApplyAttributes(
                    Context,
                    this,
                    Definition.FieldBindingType);
            }

            var fields         = new Dictionary <NameString, ObjectFieldDefinition>();
            var handledMembers = new HashSet <MemberInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Fields.Select(t => t.CreateDefinition()),
                f => f.Member,
                fields,
                handledMembers);

            OnCompleteFields(fields, handledMembers);

            Definition.Fields.AddRange(fields.Values);

            base.OnCreateDefinition(definition);
        }
        protected override void OnCreateDefinition(
            DirectiveTypeDefinition definition)
        {
            if (!Definition.AttributesAreApplied && Definition.RuntimeType != typeof(object))
            {
                Context.TypeInspector.ApplyAttributes(
                    Context,
                    this,
                    Definition.RuntimeType);
                Definition.AttributesAreApplied = true;
            }

            var arguments      = new Dictionary <NameString, DirectiveArgumentDefinition>();
            var handledMembers = new HashSet <PropertyInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Arguments.Select(t => t.CreateDefinition()),
                f => f.Property,
                arguments,
                handledMembers);

            OnCompleteArguments(arguments, handledMembers);

            definition.Arguments.AddRange(arguments.Values);

            base.OnCreateDefinition(definition);
        }
        protected override void OnCreateDefinition(
            InterfaceTypeDefinition definition)
        {
            if (!Definition.AttributesAreApplied && Definition.RuntimeType != typeof(object))
            {
                Context.TypeInspector.ApplyAttributes(
                    Context,
                    this,
                    Definition.RuntimeType);
                Definition.AttributesAreApplied = true;
            }

            var fields         = new Dictionary <NameString, InterfaceFieldDefinition>();
            var handledMembers = new HashSet <MemberInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Fields.Select(t => t.CreateDefinition()),
                f => f.Member,
                fields,
                handledMembers);

            OnCompleteFields(fields, handledMembers);

            Definition.Fields.AddRange(fields.Values);

            base.OnCreateDefinition(definition);
        }
Example #4
0
        protected override void OnCreateDefinition(
            InputObjectTypeDefinition definition)
        {
            var fields            = new Dictionary <NameString, InputFieldDefinition>();
            var handledProperties = new HashSet <PropertyInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Fields.Select(t => t.CreateDefinition()),
                f => f.Property,
                fields,
                handledProperties);

            OnCompleteFields(fields, handledProperties);

            Definition.Fields.AddRange(fields.Values);
        }
Example #5
0
        protected override void OnCreateDefinition(
            InterfaceTypeDefinition definition)
        {
            var fields         = new Dictionary <NameString, InterfaceFieldDefinition>();
            var handledMembers = new HashSet <MemberInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Fields.Select(t => t.CreateDefinition()),
                f => f.Member,
                fields,
                handledMembers);

            OnCompleteFields(fields, handledMembers);

            Definition.Fields.AddRange(fields.Values);
        }
        protected override void OnCreateDefinition(
            DirectiveTypeDefinition definition)
        {
            var arguments =
                new Dictionary <NameString, DirectiveArgumentDefinition>();
            var handledMembers = new HashSet <PropertyInfo>();

            FieldDescriptorUtilities.AddExplicitFields(
                Arguments.Select(t => t.CreateDefinition()),
                f => f.Property,
                arguments,
                handledMembers);

            OnCompleteArguments(arguments, handledMembers);

            definition.Arguments.AddRange(arguments.Values);
        }