public async Task <PagingResponseMessage <LimitInfoResponse> > Search(UserInfo User, [FromBody] LimitSearchRequest request)
        {
            var r = new PagingResponseMessage <LimitInfoResponse>();

            try
            {
                r = await _limitManager.Search(User, request);
            }
            catch (Exception e)
            {
                r.Code    = ResponseCodeDefines.ServiceError;
                r.Message = "服务器错误:" + e.Message;
                Logger.Error("查询费用限额设置失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
Ejemplo n.º 2
0
        public async Task <PagingResponseMessage <LimitInfoResponse> > Search(UserInfo user, LimitSearchRequest request)
        {
            PagingResponseMessage <LimitInfoResponse> r = new PagingResponseMessage <LimitInfoResponse>();

            var orgList = await _permissionExpansion.GetOrganizationOfPermission(user.Id, PERMISSION_BXXE);

            var query = _Store.SimpleQuery;

            query = query.Where(c => c.IsDeleted == false);

            if (request != null)
            {
                if (!String.IsNullOrEmpty(request.DepartmentId))
                {
                    var orgChildren = await _permissionExpansion.GetLowerDepartments(request.DepartmentId);

                    orgList = orgList.Where(x => orgChildren.Contains(x)).ToList();
                }
            }

            query = query.Where(c => orgList.Contains(c.UserInfo.DepartmentId));

            if (request != null)
            {
                if (!String.IsNullOrWhiteSpace(request.Keyword))
                {
                    query = query.Where(l => (l.UserInfo.UserID.Contains(request.Keyword) || l.UserInfo.Name.Contains(request.Keyword) || l.Memo.Contains(request.Keyword)));
                }
                if (request.PageSize > 0 && request.PageIndex > 0)
                {
                    r.TotalCount = await query.CountAsync();

                    r.PageIndex = request.PageIndex;
                    r.PageSize  = request.PageSize;
                    query       = query.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize);
                }
            }

            var list = await query.ToListAsync();

            r.Extension = _mapper.Map <List <LimitInfoResponse> >(list);
            if (r.TotalCount == 0)
            {
                r.TotalCount = r.Extension.Count;
            }

            return(r);
        }