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(); }
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)); }
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(); }