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_); } }
// 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_); } } }