} //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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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;
 }