/// <summary> /// visit a comparison expression /// </summary> /// <param name="context"></param> /// <returns></returns> public override Expression <Func <T, bool> > VisitComparison(RSqlQueryParser.ComparisonContext context) { var comparator = context.comparator().GetText().ToLowerInvariant(); switch (comparator) { case "=is-null=": case "=nil=": return(RSqlQueryExpressionHelper.GetIsNullExpression <T>(_parameter, context, _jsonNamingPolicy)); case "==": case "=eq=": return(RSqlQueryExpressionHelper.GetEqExpression <T>(_parameter, context, _jsonNamingPolicy)); case "!=": case "=neq=": return(RSqlQueryExpressionHelper.GetNeqExpression <T>(_parameter, context, _jsonNamingPolicy)); case "<": case "=lt=": return(RSqlQueryExpressionHelper.GetLtExpression <T>(_parameter, context, _jsonNamingPolicy)); case "<=": case "=le=": return(RSqlQueryExpressionHelper.GetLeExpression <T>(_parameter, context, _jsonNamingPolicy)); case ">": case "=gt=": return(RSqlQueryExpressionHelper.GetGtExpression <T>(_parameter, context, _jsonNamingPolicy)); case ">=": case "=ge=": return(RSqlQueryExpressionHelper.GetGeExpression <T>(_parameter, context, _jsonNamingPolicy)); case "=in=": return(RSqlQueryExpressionHelper.GetInExpression <T>(_parameter, context, _jsonNamingPolicy)); case "=out=": return(RSqlQueryExpressionHelper.GetOutExpression <T>(_parameter, context, _jsonNamingPolicy)); default: throw new ComparisonUnknownComparatorException(context); } }
public ComparisonUnknownComparatorException(RSqlQueryParser.ComparisonContext origin, Exception innerException = null) : base(origin, $"Unknown comparator : {origin?.comparator()?.GetText()}", innerException) { }