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;
            }
        }
Beispiel #2
0
        private void SetupQueryVisitorContextDefaults(IQueryVisitorContext context)
        {
            if (_config.FieldResolver != null && context.GetFieldResolver() == null)
            {
                context.SetFieldResolver(_config.FieldResolver);
            }

            if (_config.Validator != null && context.GetValidator() == null)
            {
                context.SetValidator(_config.Validator);
            }
        }