public bool ShouldIncludeNode(ExecutionContext context, Directives directives) { if (directives != null) { var directive = directives.Find(DirectiveGraphType.Skip.Name); if (directive != null) { var values = GetArgumentValues( context.Schema, DirectiveGraphType.Skip.Arguments, directive.Arguments, context.Variables); return(!((bool)values["if"])); } directive = directives.Find(DirectiveGraphType.Include.Name); if (directive != null) { var values = GetArgumentValues( context.Schema, DirectiveGraphType.Include.Arguments, directive.Arguments, context.Variables); return((bool)values["if"]); } } return(true); }
public override object VisitDirectives(GraphQLParser.DirectivesContext context) { var directives = new Directives(); foreach (var dir in context.directive()) { directives.Add((Directive)Visit(dir)); } return(directives); }
public bool ShouldIncludeNode(ExecutionContext context, Directives directives) { if (directives != null) { var directive = directives.Find(DirectiveGraphType.Skip.Name); if (directive != null) { var values = GetArgumentValues( context.Schema, DirectiveGraphType.Skip.Arguments, directive.Arguments, context.Variables); object ifObj; values.TryGetValue("if", out ifObj); bool ifVal; return(!(bool.TryParse(ifObj?.ToString() ?? string.Empty, out ifVal) && ifVal)); } directive = directives.Find(DirectiveGraphType.Include.Name); if (directive != null) { var values = GetArgumentValues( context.Schema, DirectiveGraphType.Include.Arguments, directive.Arguments, context.Variables); object ifObj; values.TryGetValue("if", out ifObj); bool ifVal; return(bool.TryParse(ifObj?.ToString() ?? string.Empty, out ifVal) && ifVal); } } return(true); }
public Operation() { OperationType = OperationType.Query; Directives = new Directives(); Variables = new Variables(); }
public FragmentDefinition() { Directives = new Directives(); }
public FragmentSpread() { Directives = new Directives(); }