Пример #1
0
        public async Task <IActionResult> GetAllUsers([FromQuery] UserParams userParams)
        {
            var repo = new TableStorageRepository();

            var users = await repo.GetUsersWithoutParams();

            var CurrentUserId = (User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var userLogged = await repo.GetUser(CurrentUserId);

            if (userLogged.Role == "admin")
            {
                var usersAdmin = await repo.GetUsersWithoutParamsForAdmin();

                var usersForAdmin = _mapper.Map <IEnumerable <UserDto> >(usersAdmin);

                return(Ok(usersForAdmin));
            }


            if (!string.IsNullOrEmpty(userParams.UserId))
            {
                users = users.Where(x => x.RowKey != userParams.UserId).OrderBy(x => x.Name);
            }

            users = users.OrderBy(x => x.Name);

            var usersToReturn = _mapper.Map <IEnumerable <UserDto> >(users);

            if (!usersToReturn.Any())
            {
                return(NotFound());
            }
            return(Ok(usersToReturn));
        }