コード例 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Examples...");
            var queryString = GraphQueryStringBuilder.Build <QueryRoot>(queryBuilder => queryBuilder
                                                                        .AddObjectAs <IEnumerable <Shop>, Shop>(query => query.Shops, shopBuilder => shopBuilder
                                                                                                                .AddScalar(shop => shop.Name)
                                                                                                                .AddObjectAs <IEnumerable <User>, User>(shop => shop.Users, userBuilder => userBuilder
                                                                                                                                                        .IncludeAllScalars()
                                                                                                                                                        .AddObjectAs <IEnumerable <Address>, Address>(user => user.Addresses, addressBuilder => addressBuilder
                                                                                                                                                                                                      .IncludeAllScalars()
                                                                                                                                                                                                      )
                                                                                                                                                        .AddArgument("age", 18)
                                                                                                                                                        )
                                                                                                                .AddArgumentAsVariable("name", "nameVariable")
                                                                                                                )
                                                                        );

            Console.WriteLine(queryString);
            Console.ReadLine();

            var parsedQuery = GraphQueryStringParser.Parse(queryString);

            Console.WriteLine(((IGraphQueryable)parsedQuery).ToQueryString());
            Console.ReadLine();
        }
コード例 #2
0
        public async Task <IEnumerable <TResponse> > QueryAllPagesAsync <TResponse, TResponseData>(GraphQlRequestMessage request) where TResponse : GraphQlResponseMessage <TResponseData>
        {
            var result   = new List <TResponse>();
            var response = await SendAsync <TResponse, TResponseData>(request);

            result.Add(response);

            var page        = new PaginableResponse <TResponseData>(GraphQueryStringParser.Parse(request.Query));
            var queryString = string.Empty;

            while (!string.IsNullOrEmpty(queryString = page.GetNextPageQueryString(response.Data)))
            {
                OnBeforeQueryPage?.Invoke(this, new GraphQlEventArgs <TResponse, TResponseData>
                {
                    Request  = request,
                    Response = response
                });

                response = await SendAsync <TResponse, TResponseData>(new GraphQlRequestMessage
                {
                    OperationName = request.OperationName,
                    Query         = queryString,
                    Variables     = request.Variables
                });

                result.Add(response);
            }

            return(result);
        }
コード例 #3
0
        public void ParseShouldCreateStructureIncludingAConnection()
        {
            var query = $"{{ addresses(first:5) {{ edges {{ cursor, node {{ type, name, number, otherInformation }} }}, pageInfo {{ hasNextPage, hasPreviousPage }} }} }}";

            var result = GraphQueryStringParser.Parse(query);

            Assert.Equal(query.Replace(" ", string.Empty), ((IGraphQueryable)result).ToQueryString().Trim().Replace(" ", string.Empty));
        }
コード例 #4
0
        public void ParseShouldCreateStructureIncludingAllScalarFields()
        {
            var query = $"{{ addresses {{ type, name, number, otherInformation }} }}";

            var result = GraphQueryStringParser.Parse(query);

            Assert.Equal(query.Replace(" ", string.Empty), ((IGraphQueryable)result).ToQueryString().Trim().Replace(" ", string.Empty));
        }
コード例 #5
0
        public void ParseShouldCreateStructureIncludingArgumentsWithLiteralValues()
        {
            var argumentName  = "fakeArgumentName";
            var argumentValue = "FakeArgumentValue";
            var query         = $"{{ addresses({argumentName}:\"{argumentValue}\") {{ name }} }}";

            var result = GraphQueryStringParser.Parse(query);

            Assert.Equal(query.Replace(" ", string.Empty), ((IGraphQueryable)result).ToQueryString().Trim().Replace(" ", string.Empty));
        }
コード例 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Examples...");
            var queryString = GraphQueryStringBuilder.Build <QueryRoot>(queryBuilder => queryBuilder
                                                                        .AddConnection(query => query.Shops, 10, shopBuilder => shopBuilder
                                                                                       .AddScalar(shop => shop.Name)
                                                                                       .AddConnection(shop => shop.Users, 5, userBuilder => userBuilder
                                                                                                      .IncludeAllScalars()
                                                                                                      .AddConnection(user => user.Addresses, 1, addressBuilder => addressBuilder
                                                                                                                     .IncludeAllScalars()
                                                                                                                     )
                                                                                                      )
                                                                                       )
                                                                        );

            Console.WriteLine(queryString);
            Console.ReadLine();

            var parsedQuery = GraphQueryStringParser.Parse(queryString);

            Console.WriteLine(((IGraphQueryable)parsedQuery).ToQueryString());
            Console.ReadLine();
        }