Ejemplo n.º 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);
            }
        }
Ejemplo n.º 2
0
 public static void AddResolver <T>(this IGraphTypeResolverSource source, Func <T> resolver)
     where T : GraphType
 => source.AddResolver(typeof(T), resolver);