public static ISchemaBuilder AddResolver <TResult>(
            this ISchemaBuilder builder,
            NameString typeName,
            NameString fieldName,
            Func <IResolverContext, Task <TResult> > resolver)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (resolver == null)
            {
                throw new ArgumentNullException(nameof(resolver));
            }

            return(builder.AddResolver(typeName, fieldName,
                                       async ctx =>
            {
                Task <TResult> resolverTask = resolver(ctx);
                if (resolverTask == null)
                {
                    return default;
                }
                return await resolverTask.ConfigureAwait(false);
            }));
        }
Exemple #2
0
        private static ISchemaBuilder AddResolverInternal(
            ISchemaBuilder builder,
            NameString typeName,
            NameString fieldName,
            FieldResolverDelegate resolver)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.AddResolver(
                       new FieldResolver(typeName, fieldName, resolver)));
        }
        public static ISchemaBuilder AddResolver <TSchema>(
            this ISchemaBuilder builder,
            NameString typeName,
            NameString fieldName,
            FieldResolverDelegate resolver)
            where TSchema : ISchema
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.AddResolver(
                       new FieldResolver(typeName, fieldName, resolver)));
        }
        public static ISchemaBuilder AddResolver <TResult>(
            this ISchemaBuilder builder,
            NameString typeName,
            NameString fieldName,
            Func <IResolverContext, TResult> resolver)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (resolver == null)
            {
                throw new ArgumentNullException(nameof(resolver));
            }

            return(builder.AddResolver(typeName, fieldName,
                                       ctx => Task.FromResult <object>(resolver(ctx))));
        }
        public static ISchemaBuilder AddResolver(
            this ISchemaBuilder builder,
            NameString typeName,
            NameString fieldName,
            Func <Task <object> > resolver)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (resolver == null)
            {
                throw new ArgumentNullException(nameof(resolver));
            }

            return(builder.AddResolver(typeName, fieldName,
                                       ctx => resolver()));
        }