private void AddIllegalExpressions(LegalFilterParser parser) { foreach (var expr in parser.IllegalExpressionsForSplitRequest) { var newLegalParser = new LegalFilterParser(strict); var newFilterParser = new FilterExpressionParser(); var legalExpression = newLegalParser.Visit(expr); var filteredExpression = newFilterParser.Visit(legalExpression); FilterSets.AddRange(GetFilters(newFilterParser.Conditions)); AddIllegalExpressions(newLegalParser); } }
private Expression ParseFilters(Expression expression) { Logger.Log("Identifying query filters", Indentation.Two); var filterExpressionParser = new FilterExpressionParser(); Logger.Log("Identifying filter candidates", Indentation.Three); var filterExpression = filterExpressionParser.Visit(expression); var conditions = filterExpressionParser.Conditions; Logger.Log($"Found {conditions.Count} filter candidates", Indentation.Four, conditions); var adjustedFilters = GetFilters(conditions); if (adjustedFilters.Count > 0) { FilterSets.AddRange(adjustedFilters); } return(filterExpression); }