コード例 #1
0
        private void BuildInputType(InputObjectTypeDef inpTypeDef)
        {
            var type_ = inpTypeDef.Type_;

            foreach (var inpFldDef in inpTypeDef.Fields)
            {
                var inp_ = new __InputValue()
                {
                    Name         = inpFldDef.Name, Description = inpFldDef.Description,
                    DefaultValue = inpFldDef.HasDefaultValue ? inpFldDef.DefaultValue + string.Empty : null,
                    Type         = inpFldDef.TypeRef.Type_
                };
                inpFldDef.Intro_ = inp_;
                type_.InputFields.Add(inp_);
            }
        }
コード例 #2
0
        // Object types and interface types
        private void BuildComplexObjectType(ComplexTypeDef typeDef)
        {
            var type_ = typeDef.Type_;

            // build fields
            foreach (var fld in typeDef.Fields)
            {
                var hidden = fld.Flags.IsSet(FieldFlags.Hidden); // ex: _typename should not be listed as field in intro queries
                var fld_   = new __Field()
                {
                    Name = fld.Name, Description = fld.Description, Type = fld.TypeRef.Type_, IsHidden = hidden
                };
                fld.Intro_ = fld_;
                // convert args
                foreach (var inpV in fld.Args)
                {
                    var inpV_ = new __InputValue()
                    {
                        Name = inpV.Name, Description = inpV.Description,
                        Type = inpV.TypeRef.Type_, DefaultValue = inpV.DefaultValue + string.Empty
                    };
                    inpV.Intro_ = inpV_;
                    fld_.Args.Add(inpV_);
                }
                type_.Fields.Add(fld_);
            } //foreach fld

            // Interfaces - for ObjectTypes only
            if (typeDef is ObjectTypeDef objTypeDef)
            {
                foreach (var intfDef in objTypeDef.Implements)
                {
                    var intf_ = intfDef.Type_;
                    type_.Interfaces.Add(intf_);
                    intf_.PossibleTypes.Add(type_);
                }
            }
        }