Exemplo n.º 1
0
        private async Task <GraphQLResponse <T> > SendRequest(GraphQLQueryTree queryTree, string uri)
        {
            using (var client = new HttpClient())
            {
                using (var querySerializer = new GraphQLQueryTreeSerializer(queryTree))
                {
                    var query = querySerializer.Serialize();

                    if (queryReport)
                    {
                        System.Console.WriteLine("query:");
                        System.Console.WriteLine();
                        System.Console.WriteLine(query);
                        System.Console.WriteLine();
                        System.Console.WriteLine();
                    }

                    var content  = new StringContent(query, Encoding.UTF8, "application/json");
                    var postTask = await client.PostAsync(uri, content);

                    if (postTask.IsSuccessStatusCode)
                    {
                        var data = await postTask.Content.ReadAsStringAsync();

                        var result = JsonConvert.DeserializeAnonymousType(data, new GraphQLResponse <T>(), new JsonSerializerSettings
                        {
                            ContractResolver = new JsonIQueryableContractResolver()
                        });

                        if (metaReport)
                        {
                            System.Console.WriteLine("meta:");
                            System.Console.WriteLine();
                            System.Console.WriteLine(JsonConvert.SerializeObject(result.Meta));
                            System.Console.WriteLine();
                            System.Console.WriteLine();
                        }

                        return(result);
                    }
                    else
                    {
                        return(default);
Exemplo n.º 2
0
 public override object Materialize(GraphQLQueryTree queryTree, string connectionString, bool queryReport, bool metaReport)
 {
     this.queryReport = queryReport;
     this.metaReport  = metaReport;
     return(new GrapQLResponseEnumerator <T>(SendRequest(queryTree, connectionString)));
 }
Exemplo n.º 3
0
 public GraphQLQueryTreeSerializer(GraphQLQueryTree entity)
 {
     this.entity = entity;
 }