/// <summary>
        /// Builds the root execution node.
        /// </summary>
        protected virtual RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType)
        {
            var root = new RootExecutionNode(rootType, context.Operation.SelectionSet)
            {
                Result = context.RootValue
            };

            SetSubFieldNodes(context, root);

            return(root);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Builds the root execution node.
        /// </summary>
        protected static RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType)
        {
            var root = new RootExecutionNode(rootType)
            {
                Result = context.RootValue
            };

            var fields = System.Threading.Interlocked.Exchange(ref context.ReusableFields, null) ?? new Fields();

            SetSubFieldNodes(context, root, fields.CollectFrom(context, rootType, context.Operation.SelectionSet));

            fields.Clear();
            System.Threading.Interlocked.CompareExchange(ref context.ReusableFields, fields, null);

            return(root);
        }
Ejemplo n.º 3
0
        public static RootExecutionNode BuildExecutionRootNode(ExecutionContext context, IObjectGraphType rootType)
        {
            var root = new RootExecutionNode(rootType)
            {
                Result = context.RootValue
            };

            var fields = CollectFields(
                context,
                rootType,
                context.Operation.SelectionSet);

            SetSubFieldNodes(context, root, fields);

            return(root);
        }