Example #1
0
        public async Task <Contract.Models.User> ConfirmEmail(EmailDto dto)
        {
            var user = await _userGetOperations.GetById(dto.UserId);

            if (user is null)
            {
                throw new NotFoundException("Пользователь не найден");
            }

            if (user.EmailCode != dto.Code)
            {
                throw new BusinessException("Некорректная ссылка подтверждения");
            }

            return(await _userWriteOperations.ConfirmEmail(dto.UserId));
        }
Example #2
0
        public async Task <Contract.Models.User> ChangePassword(UserChangePasswordDto changePasswordDto)
        {
            ValidationHelper.ValidateAndThrow(changePasswordDto);

            var user = await _userGetOperations.GetById(changePasswordDto.UserId);

            if (user is null)
            {
                throw new NotFoundException("Пользователь не найден");
            }
            if (!PasswordHelper.ComparePassword(user, changePasswordDto.OldPassword))
            {
                throw new InvalidPasswordException();
            }

            var(hash, salt) = PasswordHelper.GeneratePassword(changePasswordDto.NewPassword);
            return(await _userWriteOperations.UpdatePassword(user.Id, hash, salt));
        }