예제 #1
0
        public async Task <IActionResult> EditUserProfile([FromBody] EditUserProfileDto editUserProfileDto)
        {
            var userId = User.GetUserId();
            var result = await _userDataService.EditUserProfile(editUserProfileDto, userId);

            if (result.Succeeded)
            {
                return(NoContent());
            }
            return(BadRequest(result.Errors));
        }
        public ValidationResult ValidateEditUserProfileDto(EditUserProfileDto dto)
        {
            var validationResult = new ValidationResult("Редиктирование профайла пользователя");

            if (string.IsNullOrEmpty(dto.Name))
            {
                validationResult.AddError(ValidationErrorResources.ContactNameIsEmpty);
            }
            if (string.IsNullOrEmpty(dto.Phone) || IsInvalidPhoneNumber(dto.Phone))
            {
                validationResult.AddError(ValidationErrorResources.PhoneNumberIsIncorrect);
            }
            return(validationResult);
        }
예제 #3
0
        public async Task <IdentityResult> EditUserProfile(EditUserProfileDto editUserProfileDto, string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(null);
            }

            user.FirstName = editUserProfileDto.FirstName;
            user.LastName  = editUserProfileDto.LastName;
            var result = await _userManager.UpdateAsync(user);

            return(result);
        }
예제 #4
0
        public void EditUserProfile(EditUserProfileDto dto, string currentUserId)
        {
            IsUserInRegularRole(currentUserId);
            var profile = CheckAndGet(currentUserId).UserProfile;

            var validationResult = _validationManager.ValidateEditUserProfileDto(dto);

            if (validationResult.HasErrors)
            {
                throw new BusinessFaultException(validationResult.GetErrors());
            }

            profile.Name    = dto.Name;
            profile.Phone   = dto.Phone;
            profile.Updated = DateTime.UtcNow;

            _unitOfWork.SaveChanges();
        }
예제 #5
0
        public void EditUser(EditUserProfileDto registerDto)
        {
            var user = _userManager.Users.FirstOrDefault(u => u.Id == registerDto.UserId);

            if (user == null)
            {
                throw new EntityNotFoundException(string.Format(USER_NOT_FOUND, registerDto.UserId));
            }

            if (registerDto.UserName.Length < 4)
            {
                throw new Exception(SHORT_LOGIN);
            }

            if (registerDto.Password != registerDto.ConfirmPassword)
            {
                throw new Exception(PASSWORD_NOT_MATCH_MESSAGE);
            }

            if (registerDto.Password.Length < 6)
            {
                throw new Exception(SHORT_PASSWORD);
            }

            if (Regex.Matches(registerDto.Password, "[A-Z]").Count == 0)
            {
                throw new Exception(PASSWORD_UPPERCASE_CHARACTER);
            }

            if (Regex.Matches(registerDto.Password, "[a-z]").Count == 0)
            {
                throw new Exception(PASSWORD_LOWERCASE_CHARACTER);
            }

            if (Regex.Matches(registerDto.Password, "[0-9]").Count == 0)
            {
                throw new Exception(PASSWORD_DIGITS);
            }

            user.UserName     = registerDto.UserName;
            user.PasswordHash = _userManager.PasswordHasher.HashPassword(user, registerDto.Password);

            _userManager.UpdateAsync(user).Wait();
        }
예제 #6
0
        public async Task <string> EditAgentProfile(EditUserProfileDto editUser)
        {
            var user = await _authentication.GetCurrentUserAsync();

            if (editUser.Image != null)
            {
                var imagePath = await _fileService.SaveFile(editUser.Image.OpenReadStream(), Path.GetExtension(editUser.Image.FileName));

                if (user.ImagePath != null)
                {
                    await _fileService.RemoveFile(user.ImagePath);
                }
                user.ImagePath = imagePath.ToString();
            }
            user.FirstName   = editUser.FirstName;
            user.LastName    = editUser.LastName;
            user.Email       = editUser.Email;
            user.PhoneNumber = editUser.PhoneNumber;

            await _userManager.UpdateAsync(user);

            var agent = await _unitOfWork.Repository <AgentProfile>().GetAsync(a => a.Id == user.Id) ?? throw new InvalidArgumentException("Agent id", "No agents with such id");

            var usersDto = new List <UsersListDto>();

            agent.BirthDate   = editUser.AgentProfile.BirthDate;
            agent.City        = editUser.AgentProfile.City;
            agent.DefaultRate = editUser.AgentProfile.DefaultRate;
            agent.Description = editUser.AgentProfile.Description;

            await _unitOfWork.Repository <AgentProfile>().UpdateAsync(agent);

            await _unitOfWork.SaveChangesAsync();

            var currentUser = await _userManager.FindByNameAsync(user.UserName) ?? throw new NotFoundException(user.UserName);

            await _userManager.AddToRoleAsync(currentUser, "User");

            await _signInManager.SignInAsync(user, false);

            var token = await _authentication.GenerateJwtToken(user);

            return(token);
        }
 public IHttpActionResult EditProfile(EditUserProfileDto dto)
 {
     return(CallBusinessLogicAction(() => _userManager.EditUserProfile(dto, User.Identity.GetUserId())));
 }
예제 #8
0
        public ResponseDto EditUser([FromBody] EditUserProfileDto editUserProfileDto)
        {
            _usersRepository.EditUser(editUserProfileDto);

            return(new ResponseDto());
        }