public void ApplyTo(ISchema schema)
        {
            schema.AllTypes.Apply(item =>
            {
                var complex = item as IComplexGraphType;
                complex?.Fields.Apply(field =>
                {
                    var resolver = new MiddlewareResolver(field.Resolver);

                    FieldMiddlewareDelegate app = context => resolver.Resolve(context);
                    app = Build(app);

                    field.Resolver = new FuncFieldResolver <object>(context =>
                    {
                        try
                        {
                            var result = app.Invoke(context);
                            result.ConfigureAwait(false);
                            return(result.Result);
                        }
                        catch (AggregateException ex)
                        {
                            throw new Exception(ex.InnerException.Message, ex.InnerException);
                        }
                    });
                });
            });
        }
示例#2
0
        public void ApplyTo(ISchema schema)
        {
            schema.AllTypes.Apply(item =>
            {
                var complex = item as IComplexGraphType;
                complex?.Fields.Apply(field =>
                {
                    var resolver = new MiddlewareResolver(field.Resolver);

                    FieldMiddlewareDelegate app = context => resolver.Resolve(context);
                    app = Build(app);

                    field.Resolver = new FuncFieldResolver <Task <object> >(context => app.Invoke(context));
                });
            });
        }