示例#1
0
        protected QueryResponseParam GetListOperationWithParameter <T>(string db, string provider, TestOperationParam param, QueryRequestParam qrp) where T : BaseModel
        {
            QueryResponseParam response = null;
            var opr = CreateGetListOperation(param.GetListName);

            response = opr.Apply(qrp);

            return(response);
        }
示例#2
0
        protected bool GetListOperationWithNoParameter <T>(string db, string provider, TestOperationParam param) where T : BaseModel
        {
            CreateOnixDbContext(db, provider);

            bool ok  = true;
            var  opr = CreateGetListOperation(param.GetListName);

            try
            {
                QueryRequestParam  qrp      = new QueryRequestParam();
                QueryResponseParam response = opr.Apply(qrp);
            }
            catch
            {
                ok = false;
            }

            return(ok);
        }
示例#3
0
        public QueryResponseParam Apply(QueryRequestParam param)
        {
            InitPageLimit(param);

            queryParam = param;
            context    = GetDatabaseContext();

            Type mt = GetModelType();
            ParameterExpression startParam = Expression.Parameter(mt);
            var expr = ConstructWhereExpr(startParam, param);

            int totalRec = GetTotalRecord(startParam, expr);

            QueryResponseParam qrp = new QueryResponseParam();

            qrp.Results = new List <BaseModel>();

            var results = Query(startParam, expr);

            results = ApplyOrderBy(results, mt, param);

            if (param.ByChunk)
            {
                results    = ApplyLimitOffset(results, param);
                qrp.PageNo = param.PageNo;
            }

            foreach (var r in results)
            {
                qrp.Results.Add(r);
            }

            qrp.RecordCount = qrp.Results.Count;
            qrp.TotalRecord = totalRec;
            qrp.TotalPage   = GetTotalPage(totalRec);

            return(qrp);
        }