コード例 #1
0
ファイル: UserController.cs プロジェクト: qkxyk/hxcore
        public async Task <ActionResult <BaseResponse> > Get([FromQuery] UserPageRequestViewModel req)
        {
            //该组织管理员有权限
            var GroupId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value;
            var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false;

            if (!isAdmin)
            {
                return(new UnauthorizedResult());
            }
            var rm = await _us.GetUsersAsync(req, GroupId);

            return(rm);
        }
コード例 #2
0
        public async Task <BaseResponse> GetUsersAsync(UserPageRequestViewModel req, string GroupId)
        {
            var UserQuery = _user.Find(a => a.GroupId == GroupId);

            if (req.Status.HasValue)
            {
                UserQuery = UserQuery.Where(a => a.Status == (UserStatus)req.Status);
            }
            if (!string.IsNullOrWhiteSpace(req.Search))
            {
                UserQuery = UserQuery.Where(a => a.UserName == req.Search || a.Account == req.Search);
            }
            int    count           = UserQuery.Count();
            string OrderExpression = "";

            if (string.IsNullOrEmpty(req.OrderBy))
            {
                OrderExpression = "Id Asc";
                //UserQuery = UserQuery.OrderBy(a => a.Id);
            }
            else
            {
                OrderExpression = string.Format("{0} {1}", req.OrderBy, req.OrderType);
            }
            var userList = await UserQuery.OrderBy(OrderExpression).Skip((req.PageNo - 1) * req.PageSize).Take(req.PageSize).ToListAsync();

            var dto = _mapper.Map <List <UserData> >(userList);
            var ret = new BasePageResponse <List <UserData> >()
            {
                Count       = count,
                CurrentPage = req.PageNo,
                PageSize    = req.PageSize,
                Success     = true,
                Message     = "获取数据成功",
                Data        = dto,
                TotalPage   = (int)Math.Ceiling((decimal)count / req.PageSize)
            };

            return(ret);
        }