예제 #1
0
        public async Task <TableData> Load(QueryFlowInstanceListReq request)
        {
            var result = new TableData();
            var user   = _auth.GetCurrentUser();

            if (request.type == "wait") //待办事项
            {
                Expression <Func <FlowInstance, bool> > waitExp = u => (u.MakerList == "1" ||
                                                                        u.MakerList.Contains(user.User.Id)) &&
                                                                  (u.IsFinish == FlowInstanceStatus.Running ||
                                                                   u.IsFinish == FlowInstanceStatus.Rejected);

                // 加入搜索自定义标题
                if (!string.IsNullOrEmpty(request.key))
                {
                    waitExp = waitExp.And(t => t.CustomName.Contains(request.key));
                }

                result.count = await UnitWork.Find(waitExp).CountAsync();

                result.data = await UnitWork.Find(request.page, request.limit, "CreateDate descending", waitExp).ToListAsync();
            }
            else if (request.type == "disposed") //已办事项(即我参与过的流程)
            {
                var instances = UnitWork.Find <FlowInstanceTransitionHistory>(u => u.CreateUserId == user.User.Id)
                                .Select(u => u.InstanceId).Distinct();
                var query = from ti in instances
                            join ct in UnitWork.Find <FlowInstance>(null) on ti equals ct.Id
                            select ct;

                // 加入搜索自定义标题
                if (!string.IsNullOrEmpty(request.key))
                {
                    query = query.Where(t => t.CustomName.Contains(request.key));
                }

                result.data = await query.OrderByDescending(u => u.CreateDate)
                              .Skip((request.page - 1) * request.limit)
                              .Take(request.limit).ToListAsync();

                result.count = await instances.CountAsync();
            }
            else //我的流程
            {
                Expression <Func <FlowInstance, bool> > myFlowExp = u => u.CreateUserId == user.User.Id;

                // 加入搜索自定义标题
                if (!string.IsNullOrEmpty(request.key))
                {
                    myFlowExp = myFlowExp.And(t => t.CustomName.Contains(request.key));
                }

                result.count = await UnitWork.Find(myFlowExp).CountAsync();

                result.data = await UnitWork.Find(request.page, request.limit,
                                                  "CreateDate descending", myFlowExp).ToListAsync();
            }

            return(result);
        }
예제 #2
0
        public TableData Load(QueryFlowInstanceListReq request)
        {
            var result = new TableData();
            var user   = _auth.GetCurrentUser();

            if (request.type == "wait")   //待办事项
            {
                result.count = UnitWork.Find <FlowInstance>(u => u.MakerList == "1" || u.MakerList.Contains(user.User.Id)).Count();

                result.data = UnitWork.Find <FlowInstance>(request.page, request.limit, "CreateDate descending",
                                                           u => u.MakerList == "1" || u.MakerList.Contains(user.User.Id)).ToList();
            }
            else if (request.type == "disposed")  //已办事项(即我参与过的流程)
            {
                var instances = UnitWork.Find <FlowInstanceTransitionHistory>(u => u.CreateUserId == user.User.Id)
                                .Select(u => u.InstanceId).Distinct();
                var query = from ti in instances
                            join ct in UnitWork.Find <FlowInstance>(null) on ti equals ct.Id
                            select ct;

                result.data = query.OrderByDescending(u => u.CreateDate)
                              .Skip((request.page - 1) * request.limit)
                              .Take(request.limit).ToList();
                result.count = instances.Count();
            }
            else  //我的流程
            {
                result.count = UnitWork.Find <FlowInstance>(u => u.CreateUserId == user.User.Id).Count();
                result.data  = UnitWork.Find <FlowInstance>(request.page, request.limit,
                                                            "CreateDate descending", u => u.CreateUserId == user.User.Id).ToList();
            }

            return(result);
        }
 /// <summary>
 /// 加载列表
 /// </summary>
 public string Load([FromQuery] QueryFlowInstanceListReq request)
 {
     return(JsonHelper.Instance.Serialize(_app.Load(request)));
 }
예제 #4
0
 public TableData Load([FromQuery] QueryFlowInstanceListReq request)
 {
     return(_app.Load(request));
 }
예제 #5
0
        /// <summary>
        /// 加载列表
        /// </summary>
        public async Task <string> Load([FromQuery] QueryFlowInstanceListReq request)
        {
            var objs = await _app.Load(request);

            return(JsonHelper.Instance.Serialize(objs));
        }
예제 #6
0
 /// <summary>
 /// 加载列表
 /// </summary>
 public string Load([System.Web.Http.FromUri] QueryFlowInstanceListReq request)
 {
     return(JsonHelper.Instance.Serialize(App.Load(request)));
 }
 public async Task <TableData> Load([FromQuery] QueryFlowInstanceListReq request)
 {
     return(await _app.Load(request));
 }