public ContentTypeQueryResourceBuilder WithNestedField(string fieldName)
        {
            var builder = new ContentTypeQueryResourceBuilder(fieldName);

            _nested.Add(builder);
            return(builder);
        }
        public async Task <JObject> Query(string contentType, Action <ContentTypeQueryResourceBuilder> builder)
        {
            var contentTypeBuilder = new ContentTypeQueryResourceBuilder(contentType);

            builder(contentTypeBuilder);

            var requestJson = new JObject(
                new JProperty("query", @"query { " + contentTypeBuilder.Build() + " }")
                );

            var response = await _client
                           .PostJsonAsync("api/graphql", requestJson.ToString());

            if (!response.IsSuccessStatusCode && response.StatusCode != System.Net.HttpStatusCode.Unauthorized)
            {
                throw new Exception(response.StatusCode.ToString() + " " + await response.Content.ReadAsStringAsync());
            }

            return(JObject.Parse(await response.Content.ReadAsStringAsync()));
        }