private void ApplyAlias(IFieldQueryNode node, IQueryVisitorContext context) { if (node.Parent == null) { return; } var resolver = node.Parent.GetAliasResolver(context); var result = resolver != null && node.Field != null?resolver(node.Field) : null; if (result == null) { var groupNode = node as GroupNode; if (groupNode != null) { node.SetAliasResolver(_useNestedResolvers ? GetScopedResolver(resolver, node.Field) : resolver); } return; } node.SetOriginalField(node.Field); node.Field = result.Name; if (node is GroupNode) { node.SetAliasResolver(_useNestedResolvers ? result.Resolver : resolver); } }
private void ResolveField(IFieldQueryNode node, IQueryVisitorContext context) { if (node.Parent == null || node.Field == null) { return; } var contextResolver = context.GetFieldResolver(); string resolvedField = node.Field; if (_globalResolver != null) { resolvedField = _globalResolver(resolvedField) ?? resolvedField; } if (contextResolver != null) { resolvedField = contextResolver(resolvedField) ?? resolvedField; } if (resolvedField != null && !resolvedField.Equals(node.Field, StringComparison.OrdinalIgnoreCase)) { node.SetOriginalField(node.Field); node.Field = resolvedField; } }