Beispiel #1
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            //validate
            var repo = new TableStorageRepository();

            userForRegisterDto.Email = userForRegisterDto.Email.ToLower();

            if (await _repo.UserExists(userForRegisterDto.Email))
            {
                return(BadRequest("Email already exists!"));
            }

            var userToCreate = _mapper.Map <User>(userForRegisterDto);
            var pass         = userForRegisterDto.Password.ToString();


            ////sendgrid
            var CurrentUserId = (User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var userLogged    = await repo.GetUser(CurrentUserId);

            Execute(userLogged, userToCreate, pass).Wait();

            //// end

            var createdUser = await _repo.Register(userToCreate, userForRegisterDto.Password);

            var userToReturn = _mapper.Map <UserDto>(createdUser);


            return(CreatedAtRoute("GetUser", new { controller = "User", id = createdUser.Id }, userToReturn));
        }
        public async Task <IActionResult> GetUsers([FromQuery] UserParams userParams)
        {
            var repo = new TableStorageRepository();

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

            userParams.UserId = CurrentUserId;

            var userLogged = await repo.GetUser(CurrentUserId);

            if (!string.IsNullOrEmpty(userLogged.Role) && userParams.Team)
            {
                userParams.Role = userLogged.Role;
                if (!string.IsNullOrEmpty(userLogged.Manager_ID))
                {
                    userParams.Manager = userLogged.Manager_ID;
                }
            }

            var users = await repo.GetUsers(userParams);

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

            Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages);

            if (!usersToReturn.Any())
            {
                return(NotFound());
            }
            return(Ok(usersToReturn));
        }
Beispiel #3
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));
        }
        public async Task <IActionResult> SoftDeleteAdmin(UserDto userDto)
        {
            var repo  = new TableStorageRepository();
            var cards = await repo.GetUser(userDto.ID);

            _mapper.Map(userDto, cards);
            await repo.PostEntityUser(cards);

            return(Ok());
        }
        public async Task <IActionResult> UpdateUser(string id, UpdateUserDto requestUpdate)
        {
            var repo  = new TableStorageRepository();
            var cards = await repo.GetUser(id);

            _mapper.Map(requestUpdate, cards);
            await repo.PostEntityUser(cards);

            return(Ok());
        }
        public async Task <IActionResult> RequestFeedback(RequestFeedbackDto requestFeedbackDto, string id)
        {
            var repo            = new TableStorageRepository();
            var requestToCreate = _mapper.Map <Feedbacks>(requestFeedbackDto);
            var createdRequest  = await repo.RequestFeedback(requestToCreate, id);

            var receiverId = createdRequest.ID;
            ////sendgrid
            var CurrentUserId = (User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var userLogged    = await repo.GetUser(CurrentUserId);

            var userToSend = await repo.GetUser(receiverId);

            Execute(userLogged, userToSend).Wait();

            //// end

            return(Ok(createdRequest));
        }
        public async Task <IActionResult> GetUser(string id)
        {
            var repo = new TableStorageRepository();
            var user = await repo.GetUser(id);

            var userToReturn = _mapper.Map <UserDto>(user);

            if (userToReturn == null)
            {
                return(NotFound());
            }
            return(Ok(userToReturn));
        }
        public async Task <IActionResult> DeleteUserSoft(string id)
        {
            // var repo = new TableStorageRepository();
            // var cards = await repo.GetUser(id);
            // await repo.DeleteUser(cards);
            // return Ok();

            var repo  = new TableStorageRepository();
            var cards = await repo.GetUser(id);

            cards.IsDeleted = true;
            await repo.PostEntityUser(cards);

            return(Ok());
        }