private void SetupQueryVisitorContextDefaults(IQueryVisitorContext context) { if (_config.DefaultAliasResolver != null && context.GetRootAliasResolver() == null) { context.SetRootAliasResolver(_config.DefaultAliasResolver); } if (_config.DefaultValidator != null && context.GetValidator() == null) { context.SetValidator(_config.DefaultValidator); } }
public static AliasResolver GetAliasResolver(this IQueryNode node, IQueryVisitorContext context) { object value = null; if (node.Data.TryGetValue(AliasResolverKey, out value)) { return(value as AliasResolver); } if (node.Parent == null) { return(context.GetRootAliasResolver()); } return(null); }
public override async Task <IQueryNode> AcceptAsync(IQueryNode node, IQueryVisitorContext context) { var rootResolver = context.GetRootAliasResolver(); if (rootResolver != null) { if (node is GroupNode) { node.SetAliasResolver(rootResolver); } else { throw new InvalidOperationException("Node must be GroupNode."); } } await node.AcceptAsync(this, context).ConfigureAwait(false); return(node); }