private Expression GetLegalExpression(LegalFilterParser legalFilterParser, Expression expression) { Logger.Log("Identifying maximal legal expression", Indentation.Two); var legalExpression = legalFilterParser.Visit(expression); if (legalFilterParser.IsIllegal) { HasIllegalServerFilters = legalFilterParser.IsIllegal; } return(legalExpression); }
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); } }
public Expression Build(Expression expression) { Logger.Log("Identifying parameter components", Indentation.One); var legalFilterParser = new LegalFilterParser(strict); var propertyExpression = ParseColumns(expression); var flaggedExpression = queryHelper?.FlagKeep(propertyExpression) ?? propertyExpression; var legalExpression = GetLegalExpression(legalFilterParser, flaggedExpression); var filterExpression = ParseFilters(legalExpression); var orderExpression = ParseSort(filterExpression); var countExpression = ParseCount(orderExpression); AddIllegalExpressions(legalFilterParser); RemoveInvalidFilters(); return(countExpression); }