示例#1
0
        /// <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);
            }
        }
示例#2
0
 public ComparisonUnknownComparatorException(RSqlQueryParser.ComparisonContext origin,
                                             Exception innerException = null) : base(origin,
                                                                                     $"Unknown comparator : {origin?.comparator()?.GetText()}", innerException)
 {
 }