Пример #1
0
        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);
        }
Пример #2
0
        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()
         });
     }
 }
Пример #4
0
        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)
 {
 }
Пример #6
0
 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));
 }