Exemple #1
0
 protected virtual string FormatReqRule(ReqRule rule)
 {
     var paramName = AddFilteringParam(rule.Value);
     if (rule.Operate == FilterOperate.StartsWith)
     {
         return $"{rule.Field} like '{paramName}%'";
     }
     else if (rule.Operate == FilterOperate.EndsWith)
     {
         return $"{rule.Field} like '%{paramName}'";
     }
     else if (rule.Operate == FilterOperate.Contains)
     {
         return $"{rule.Field} like '%{paramName}%'";
     }
     else
     {
         var opCode = rule.Operate.ToOperateCode();
         var vtype = rule.Value.GetType(); // 值类型
         if (vtype == typeof(string))
         {
             return $"{rule.Field} {opCode} '{paramName}'";
         }
         else
         {
             return $"{rule.Field} {opCode} {paramName}";
         }
     }
 }
        protected virtual string FormatReqRule(ReqRule rule)
        {
            var paramName = AddFilteringParam(rule.Value, rule.Operate);

            switch (rule.Operate)
            {
            case FilterOperate.StartsWith:
            case FilterOperate.EndsWith:
            case FilterOperate.Contains:
                return($"{rule.Field} like {paramName}");

            default:
            {
                var opCode = rule.Operate.ToOperateCode();
                return($"{rule.Field} {opCode} {paramName}");
            }
            }
            ;
        }
        protected virtual string FormatReqRule(ReqRule rule)
        {
            var field  = $"{prefix}.{rule.Field}";
            var result = "";

            switch (rule.Operate)
            {
            case FilterOperate.StartsWith:
                result = $"{field}.StartsWith({FormatValue(rule.Value)})";
                break;

            case FilterOperate.EndsWith:
                result = $"{field}.EndsWith({FormatValue(rule.Value)})";
                break;

            case FilterOperate.Contains:
                result = $"{field}.Contains({FormatValue(rule.Value)})";
                break;

            default:
                var opCode = rule.Operate.ToOperateCode();
                if (rule.Operate == FilterOperate.Equal)
                {
                    opCode = "==";     // expression, 得用 == 符号
                }
                var type  = !rule.ConversionType.IsNullOrEmpty() ? "(" + rule.ConversionType + ")" : "";
                var vType = rule.Value.GetType();
                if (vType == typeof(Guid))
                {
                    result = $"{type}{field}.ToString() {opCode} {FormatValue(rule.Value)}";
                }
                else
                {
                    result = $"{type}{field}{opCode} {FormatValue(rule.Value)}";
                }
                break;
            }
            ;
            return(result);
        }