} //method private void RegisterSpecialObjectTypeIfProvided(Type type, ObjectTypeRole typeRole, GraphQLModule module) { if (type == null) { return; } var typeName = $"{module.Name}_{type.Name}"; var typeDef = new ObjectTypeDef(typeName, type, GraphQLModelObject.EmptyAttributeList, module, typeRole); _model.Types.Add(typeDef); }
private ObjectTypeDef BuildRootSchemaObject(string name, ObjectTypeRole typeRole, ObjectTypeRole moduleTypeRole) { var allFields = _model.Types.OfType <ObjectTypeDef>() .Where(t => t.TypeRole == moduleTypeRole) .SelectMany(t => t.Fields).ToList(); if (allFields.Count == 0) { return(null); } // TODO: add check for name duplicates var rootObj = new ObjectTypeDef(name, null, GraphQLModelObject.EmptyAttributeList, null, typeRole); rootObj.Fields.AddRange(allFields); RegisterTypeDef(rootObj); rootObj.Hidden = false; return(rootObj); }
public ObjectTypeDef(string name, Type clrType, IList <Attribute> attrs, GraphQLModule module, ObjectTypeRole typeRole = ObjectTypeRole.Data) : base(name, TypeKind.Object, clrType, attrs, module) { this.TypeRole = typeRole; }