예제 #1
0
 public FieldType GetFieldType()
 {
     return(new FieldType
     {
         ResolvedType = new ObjectGraphTypeFromDomain(_domainDefinition, _provider),
         Name = GetDomainName(_domainDefinition.Name),
         Description = _domainDefinition.GetType().GetCustomAttribute <DescriptionAttribute>()?.Description,
         Arguments = new QueryArguments(),
         Resolver = new FuncFieldResolver <Object>(Execute),
     });
 }
예제 #2
0
        public ObjectGraphTypeFromDomain(IContextDefinition domainDefinition, IServiceProvider provider)
        {
            var modelType1 = domainDefinition.GetType();

            IsTypeOf = type => true;

            Name        = modelType1.Name;
            Description = modelType1.GetCustomAttribute <DescriptionAttribute>()?.Description;

            foreach (var query in domainDefinition.Queries)
            {
                var gQueryType = typeof(IGraphQueryHandler <,>).MakeGenericType(query.Type, query.QueryResultType);
                var handler    = (IGraphQueryHandler)provider.GetService(gQueryType);

                AddField(handler.GetFieldType(false));
            }
        }