/// <summary>
        /// Creates a sub-query
        /// </summary>
        /// <param name="objectToQuery">Inner object to query</param>
        /// <param name="arguments">A delegate to build the arguments.</param>
        /// <param name="select">A delegate to build the list of fields to be selected.</param>
        /// <returns>An inner query builder</returns>
        public GraphQLQueryBuilder Query(
            string objectToQuery,
            Action <GraphQLArgumentsBuilder> arguments,
            Action <GraphQLSelectBuilder> select)
        {
            var childBuilder = new GraphQLQueryBuilder(_root ?? this, objectToQuery, arguments, select, _nesting + 1);

            _children.Add(childBuilder);
            return(childBuilder);
        }
 private GraphQLQueryBuilder(
     GraphQLQueryBuilder root,
     string objectToQuery,
     Action <GraphQLArgumentsBuilder> arguments,
     Action <GraphQLSelectBuilder> select,
     int nesting = 0)
 {
     _objectToQuery = objectToQuery;
     arguments?.Invoke(_arguments);
     select?.Invoke(_select);
     _nesting = nesting;
     _root    = root;
 }