Example #1
0
 private void ConverterDynamicQueryParamGroupFieldName(DynamicQueryParamGroup newGroup, DynamicQueryParamGroup old)
 {
     if (newGroup == null)
     {
         throw new ArgumentNullException(nameof(newGroup));
     }
     if (old == null)
     {
         throw new ArgumentNullException(nameof(old));
     }
     newGroup.Relation = old.Relation;
     if (old.Params != null && old.Params.Any())
     {
         foreach (var item in old.Params)
         {
             var param = new DynamicQueryParam();
             param.Operator = item.Operator;
             param.Field    = FieldConverter(item.Field);
             //处理特殊情况any
             if (item.Operator == QueryOperation.Any)
             {
                 var anyGroup    = JsonConvert.DeserializeObject <DynamicQueryParamGroup>(item.Value?.ToString() ?? "");
                 var newAnyGroup = new DynamicQueryParamGroup();
                 ConverterDynamicQueryParamGroupFieldName(newAnyGroup, anyGroup);
                 param.Value = JsonConvert.SerializeObject(newAnyGroup);
             }
             else
             {
                 param.Value = item.Value;
             }
             newGroup.Params.Add(param);
         }
     }
     if (old.ChildGroups != null && old.ChildGroups.Any())
     {
         foreach (var childGroup in old.ChildGroups)
         {
             var newChildGroup = new DynamicQueryParamGroup();
             ConverterDynamicQueryParamGroupFieldName(newChildGroup, childGroup);
             newGroup.ChildGroups.Add(newChildGroup);
         }
     }
 }
Example #2
0
        public virtual DynamicQuery Converter(DynamicQuery dynamicQuery)
        {
            if (dynamicQuery == null)
            {
                return(null);
            }

            var result = new DynamicQuery(dynamicQuery.Pager);

            result.Take = dynamicQuery.Take;
            result.Skip = dynamicQuery.Skip;

            result.ParamGroup = new DynamicQueryParamGroup();
            result.Order      = ConverterOrderFieldName(dynamicQuery.Order);
            if (dynamicQuery.ParamGroup != null)
            {
                var newgroup = new DynamicQueryParamGroup();
                ConverterDynamicQueryParamGroupFieldName(newgroup, dynamicQuery.ParamGroup);
                result.ParamGroup = newgroup;
            }
            result.Select = ConverterSelectFieldName(dynamicQuery.Select);
            return(result);
        }
Example #3
0
 public DynamicQuery(bool pager)
 {
     ParamGroup = new DynamicQueryParamGroup();
     Order      = new List <DynamicQueryOrder>();
     Pager      = pager;
 }