Exemplo n.º 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();
        }
Exemplo n.º 2
0
        public void BuildShouldCreateQueryStringIncludingAConnection()
        {
            var expectedQueryString = $"{{ addresses(first:5) {{ edges {{ cursor, node {{ type, name, number, otherInformation }} }}, pageInfo {{ hasNextPage, hasPreviousPage }} }} }}";
            var queryString         = GraphQueryStringBuilder.Build <QueryRoot>(rootBuilder => rootBuilder
                                                                                .AddConnection(root => root.Addresses, 5, addressBuilder => addressBuilder
                                                                                               .IncludeAllScalars()
                                                                                               )
                                                                                );

            Assert.Equal(expectedQueryString.Replace(" ", string.Empty), queryString.Trim().Replace(" ", string.Empty));
        }
        public void BuildShouldCreateQueryStringIncludingAllScalarFields()
        {
            var expectedQueryString = $"{{ addresses {{ type, name, number, otherInformation }} }}";
            var queryString         = GraphQueryStringBuilder.Build <QueryRoot>(rootBuilder => rootBuilder
                                                                                .AddObjectAs <IEnumerable <Address>, Address>(root => root.Addresses, addressBuilder => addressBuilder
                                                                                                                              .IncludeAllScalars()
                                                                                                                              )
                                                                                );

            Assert.Equal(expectedQueryString.Replace(" ", string.Empty), queryString.Trim().Replace(" ", string.Empty));
        }
        public void BuildShouldCreateQueryStringIncludingArgumentsWithLiteralValues()
        {
            var argumentName         = "FakeArgumentName";
            var argumentValue        = "FakeArgumentValue";
            var expectedArgumentName = $"{char.ToLowerInvariant(argumentName[0])}{argumentName.Substring(1, argumentName.Length - 1)}";
            var expectedQueryString  = $"{{ addresses({expectedArgumentName}:\"{argumentValue}\") {{ name }} }}";
            var queryString          = GraphQueryStringBuilder.Build <QueryRoot>(rootBuilder => rootBuilder
                                                                                 .AddObjectAs <IEnumerable <Address>, Address>(root => root.Addresses, addressBuilder => addressBuilder
                                                                                                                               .AddArgument(argumentName, argumentValue)
                                                                                                                               .AddScalar(address => address.Name)
                                                                                                                               )
                                                                                 );

            Assert.Equal(expectedQueryString.Replace(" ", string.Empty), queryString.Trim().Replace(" ", string.Empty));
        }
Exemplo n.º 5
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();
        }