Beispiel #1
0
        private void CreateEntityGraphType <TEntity>(IEntityType entityType)
            where TEntity : class
        {
            ObjectGraphType <TEntity> graphType;

            if (_graphTypeResolverSource.TryResolve(out graphType))
            {
                return;
            }

            graphType = new ObjectGraphType <TEntity>();

            _graphTypeResolverSource.AddResolver(() => graphType);

            foreach (var prop in entityType.GetProperties())
            {
                var fieldGraphType = _typeMapper.FindMapping(prop);

                if (fieldGraphType == null)
                {
                    // TODO handle unmapped clr types
                    continue;
                }

                graphType.AddField(fieldGraphType, prop.GraphQL().FieldName, prop.GraphQL().Description);
            }

            foreach (var navigation in entityType.GetNavigations())
            {
                AddNavigation(navigation, graphType);
            }
        }
Beispiel #2
0
 private void AddFilterQueryArguments(IEntityType entityType, ICollection <QueryArgument> queryArguments)
 {
     foreach (var property in GetFilterableProperties(entityType))
     {
         queryArguments.Add(
             new QueryArgument(_typeMapper.FindMapping(property, notNull: true))
         {
             Name        = property.GraphQL().FieldName,
             Description = property.GraphQL().Description
         });
     }
 }