public async Task <UsersListDto> ListUsersAsync(int pageIndex, int itemsPage, string search) { var filterPaginatedEspecification = new UserFilterPaginatedSpecification(itemsPage * pageIndex, itemsPage, search); var filterSpecification = new UserFilterSpecification(search); var itemsOnPage = await _userRepository.ListAsync(filterPaginatedEspecification); var totalItems = await _userRepository.CountAsync(filterSpecification); var users = new UsersListDto() { Users = itemsOnPage.Select(s => s.MapUserDto()).ToList(), PaginationInfo = new PaginationInfoDto() { ActualPage = pageIndex, ItemsPerPage = itemsOnPage.Count, TotalItems = totalItems, TotalPages = int.Parse(Math.Ceiling(((decimal)totalItems / itemsPage)).ToString()) } }; users.PaginationInfo.Next = (users.PaginationInfo.ActualPage == users.PaginationInfo.TotalPages - 1) ? "is-disabled" : ""; users.PaginationInfo.Previous = (users.PaginationInfo.ActualPage == 0) ? "is-disabled" : ""; return(users); }
public IActionResult GetAll() { var users = _userService.GetAll(); var userDtos = _mapper.Map <List <UserDto> >(users); var usersList = new UsersListDto() { Users = userDtos }; _hateoasHelper.CompleteLinks(usersList, User.Claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToList()); return(Ok(usersList)); }
public override void CompleteLinks(UsersListDto users, List <string> allowedFunctionalities) { if (users.Links == null) { users.Links = new List <HateoaLink>(); } if (allowedFunctionalities.Contains(FunctionalitiesList.UsersGet.ToString())) { users.Links.Add(new HateoaLink() { Href = $"{BaseHref}/users", Method = GET, Rel = FunctionalitiesList.UsersGet.ToString() }); } if (allowedFunctionalities.Contains(FunctionalitiesList.UserCreate.ToString())) { users.Links.Add(new HateoaLink() { Href = $"{BaseHref}/users/register", Method = POST, Rel = FunctionalitiesList.UserCreate.ToString() }); } }
public async Task <UsersListDto> GetAllUsers(PaginationParams pagination) { var users = await _unitOfWork.Repository <UserDetails>().GetAll().Skip((pagination.PageNumber - 1) * pagination.PageSize).Take(pagination.PageSize).ToListAsync(); var mapper = new MapperConfiguration(cfg => cfg.CreateMap <UserDetails, UsersDto>()).CreateMapper(); var usersDto = mapper.Map <IEnumerable <UserDetails>, IEnumerable <UsersDto> >(users); foreach (var user in usersDto) { var roleId = await GetUserRole(user.UserDetailsId); var role = await _unitOfWork.Repository <Role>().Get(r => r.Id == roleId); user.RoleName = role.Name; } var usersList = new UsersListDto() { UserList = usersDto.ToList(), CountOfItems = await _unitOfWork.Repository <UserDetails>().GetAll().CountAsync() }; return(usersList); }
public virtual void CompleteLinks(UsersListDto users, List <string> allowedFunctionalities) { }
public void CompleteLinks(UsersListDto users, List <string> allowedFunctionalities) { users.Users.ForEach(user => _collaborators.ForEach(collaborator => collaborator.CompleteLinks(user, allowedFunctionalities))); _collaborators.ForEach(collaborator => collaborator.CompleteLinks(users, allowedFunctionalities)); }