public async Task <ActionResult <UsersWithRolesToReturnDto> > GetUsersList([FromQuery] UserSpecParams userParams) { int skip = userParams.PageSize * (userParams.PageIndex - 1); int take = userParams.PageSize; var query = _context.Users.AsQueryable(); if (!string.IsNullOrEmpty(userParams.Search)) { query = query.Where(p => p.UserName.ToLower().Contains(userParams.Search) || p.DisplayName.ToLower().Contains(userParams.Search)); } if (!string.IsNullOrEmpty(userParams.Sort)) { switch (userParams.Sort) { case "usernameAsc": query = query.OrderBy(p => p.UserName); break; case "usernameDesc": query = query.OrderByDescending(p => p.UserName); break; default: query = query.OrderBy(p => p.DisplayName); break; } } query = query.Skip(skip).Take(take); var usersList = await query.ToListAsync(); foreach (var perUser in usersList) { perUser.IsLockedOut = await CheckUserIsLockedOut(perUser); perUser.RolesNames = await GetRolesNameListBySelectedUser(perUser); } var totalItems = await _context.Users.CountAsync(); var data = _mapper .Map <IReadOnlyList <AppUser>, IReadOnlyList <UsersWithRolesToReturnDto> >(usersList); return(Ok(new Pagination <UsersWithRolesToReturnDto>(userParams.PageIndex, userParams.PageSize, totalItems, data))); }
public async Task <ActionResult <UserDto> > GetListUser([FromQuery] UserSpecParams userParams) { var totalItem = await _userManager.Users.CountAsync(); var user = await _userManager.Users.Where(x => string.IsNullOrEmpty(userParams.Search) || x.Email.ToLower().Contains(userParams.Search)) .Skip(userParams.PageSize * (userParams.PageIndex - 1)) .Take(userParams.PageSize).ToListAsync(); var data = _mapper.Map <IReadOnlyList <AppUser>, IReadOnlyList <UserDto> >(user); return(Ok(new Pagination <UserDto>(userParams.PageIndex, userParams.PageSize, user.Count(), data))); // return new UserDto // { // Email = user.Email, // DisplayName = user.DisplayName, // FirstName = user.FirstName, // LastName = user.LastName, // Birthday = user.Birthday, // Gender = user.Gender, // Phone = user.Phone, // }; }
public async Task <ActionResult <Pagination <UserToReturnDto> > > GetAllWithSpec([FromQuery] UserSpecParams userParams) { var spec = new UserWithDepartmentSpecification(userParams); var countSpec = new UserWithDepartmentCountSpecification(userParams); var totalItems = await _userRepo.CountAsync(countSpec); // var data = await _userRepo.GetListWithSpec(spec); var data = _mapper.Map <IReadOnlyList <User>, IReadOnlyList <UserToReturnDto> >(await _userRepo.GetListWithSpec(spec)); // return Ok(await _depRepo.GetListWithSpec(spec)); return(Ok(new Pagination <UserToReturnDto>(userParams.PageIndex, userParams.PageSize, totalItems, data))); }