/// <summary> /// 查询用户 /// </summary> /// <param name="input"></param> /// <returns></returns> public SearchUserOutput SearchUser(SearchUserInput input) { SearchUserOutput output = new SearchUserOutput(); var pager = new Pager(input.PageIndex, input.PageSize); var skip = pager.CurrentPage * pager.ItemsPerPage - pager.ItemsPerPage; IEnumerable <User> items = null; var total = 0; if (!string.IsNullOrEmpty(input.Keywords)) { if (!string.IsNullOrEmpty(input.RoleId)) { items = _userRepository.Filter(out total, a => a.OrgId == input.OrgId && a.UserName.Contains(input.Keywords) && a.RoleId == input.RoleId, a => a.OrderByDescending(x => x.CreationTime), "", pager.CurrentPage, pager.ItemsPerPage); } else { items = _userRepository.Filter(out total, a => a.OrgId == input.OrgId && a.UserName.Contains(input.Keywords), a => a.OrderByDescending(x => x.CreationTime), "", pager.CurrentPage, pager.ItemsPerPage); } } else { if (!string.IsNullOrEmpty(input.RoleId)) { items = _userRepository.Filter(out total, a => a.OrgId == input.OrgId && a.RoleId == input.RoleId, a => a.OrderByDescending(x => x.CreationTime), "", pager.CurrentPage, pager.ItemsPerPage); } else { items = _userRepository.Filter(out total, a => a.OrgId == input.OrgId, a => a.OrderByDescending(x => x.CreationTime), "", pager.CurrentPage, pager.ItemsPerPage); } } output.Users = items.ToList(); output.Total = total; return(output); }
public SearchUserOutput Search(SearchUserInput input) { using (var dbContext = new AllureContext()) { IQueryable <User> query = dbContext .Set <User>() .Include(u => u.Roles) .Include(u => u.Deliveries); if (!input.Email.IsNullOrEmpty()) { query = query.Where(u => u.Email == input.Email); } if (input.Gender.HasValue) { query = query.Where(u => u.Gender == input.Gender.Value); } if (!input.Telephone.IsNullOrEmpty()) { query = query.Where(u => u.Telephone == input.Telephone); } if (!input.Mobile.IsNullOrEmpty()) { query = query.Where(u => u.Mobile == input.Mobile); } if (!input.LastName.IsNullOrEmpty()) { query = query.Where(u => u.LastName == input.LastName); } if (!input.Company.IsNullOrEmpty()) { query = query.Where(u => u.Company.Contains(input.Company)); } if (input.Status.HasValue) { query = query.Where(u => u.Status == input.Status); } if (input.Roles != null && input.Roles.Length > 0) { query = query.Where(u => input.Roles.All(r => u.Roles.Any(ur => ur.Role == r))); } var result = new SearchUserOutput(); result.Count = query.Count(); var pageSize = input.PageSize.GetValueOrDefault(10); var pageNumber = input.PageNumber.GetValueOrDefault(1) - 1; result.Users = query .OrderBy(u => u.Id) .Skip(pageNumber * pageSize) .Take(pageSize) .ToList() .Select(u => new UserOutput(u)) .ToArray(); return(result); } }
public SearchUserOutput SearchUser(SearchUserInput input) { SearchUserOutput output = _UsersService.SearchUser(input); return(output); }