private string SetPostListInfo(IInputData input, ParamBuilderContainer condition, ListSortInfo listInfo) { MetaDataTableResolver metaResolver = MainResolver as MetaDataTableResolver; if (metaResolver != null) { QueryConditionObject conditionData = input.PostObject.Convert <QueryConditionObject>(); IParamBuilder builder = metaResolver.GetQueryCondition(conditionData); if (builder != null) { QueryCondition queryCondition = new QueryCondition(conditionData.Condition, builder); condition.Add(builder); listInfo.SqlCon = queryCondition.ToEncodeString(); } } if (SortQuery) { //string orderby; //int sort; //string order; var jsonOrder = ParseSortParams2(input); //ParseSortParams(input, out orderby, out sort, out order); //listInfo.SortField = sort; //listInfo.Order = order != "DESC" ? "ASC" : "DESC"; listInfo.JsonOrder = jsonOrder.ToJson(); return(jsonOrder.ToSqlOrder(MainResolver)); } return(string.Empty); }
public IParamBuilder GetCondition(QueryConditionObject condition) { TkDebug.AssertArgumentNull(condition, "condition", this); ParamBuilderContainer container = new ParamBuilderContainer(); foreach (var item in condition.Condition) { if (string.IsNullOrEmpty(item.Value)) { continue; } if (fIgnoreFields.Contains(item.Key)) { continue; } FieldItem field = new FieldItem(item.Key); BaseListSearch search = ObjectUtil.TryGetValue(fSearchMethod, item.Key); if (search == null) { search = fDefaultSearch; } search.Context = Context; search.ConditionData = condition.Condition; search.IsEqual = false; search.FieldName = field; var builder = search.GetCondition(field, item.Value); container.Add(builder); } return(container); }
public override OutputData DoAction(IInputData input) { TkDebug.Assert(input.IsPost, "此Source支持Post状态,当前是Get", this); QueryConditionObject obj = input.PostObject.Convert <QueryConditionObject>(); CalcResult(obj); return(OutputData.Create(DataSet)); }
public static string GetCondition(MetaDataTableResolver resolver, params Tuple <string, string>[] conditions) { TkDebug.AssertArgumentNull(resolver, "resolver", null); TkDebug.AssertArgumentNull(conditions, "conditions", null); Dictionary <string, string> dict = new Dictionary <string, string>(); foreach (var item in conditions) { dict[item.Item1] = item.Item2; } QueryConditionObject obj = new QueryConditionObject(true, dict); IParamBuilder builder = resolver.GetQueryCondition(obj); QueryCondition condition = new QueryCondition(dict, builder); return(condition.ToEncodeString()); }
protected abstract void CalcResult(QueryConditionObject obj);