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)); }
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)); }