private static Expression GetMethodCallExpression(Enums.LogicalOperator logicalOperator, Expression filterExpression, MethodCallExpression methodCallExpression)
        {
            switch (logicalOperator)
            {
            case Enums.LogicalOperator.And:
                filterExpression = filterExpression == null
                        ? (Expression)methodCallExpression
                        : Expression.And(filterExpression, methodCallExpression);
                break;

            case Enums.LogicalOperator.Or:
                filterExpression = filterExpression == null
                        ? (Expression)methodCallExpression
                        : Expression.Or(filterExpression, methodCallExpression);
                break;

            default:
                filterExpression = filterExpression == null
                        ? (Expression)methodCallExpression
                        : Expression.And(filterExpression, methodCallExpression);
                break;
            }
            return(filterExpression);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Add filter to data model
 /// </summary>
 /// <param name="dataModel"></param>
 /// <param name="columnName"></param>
 /// <param name="columnType"></param>
 /// <param name="columnValue"></param>
 /// <param name="_operator"></param>
 /// <param name="logicalOperator"></param>
 /// <returns></returns>
 public void AddFilter(string columnName, Enums.ParameterType columnType, string columnValue, Enums.CompareOperator _operator, Enums.LogicalOperator logicalOperator = Enums.LogicalOperator.none)
 {
     if (DataModel.Filters == null)
     {
         DataModel.Filters = new List <Filter>();
     }
     DataModel.Filters.Add(new Filter()
     {
         Column          = columnName,
         ValueType       = columnType.ToString().Remove(0, 1),
         Value           = columnValue,
         Operator        = _operator.ToString(),
         LogicalOperator = logicalOperator.ToString()
     });
 }