public async Task <User> RegisterUserAsync(User user, string password) { if (string.IsNullOrWhiteSpace(password)) { throw new AppException("Password is required"); } var existingUser = await _userRepository.FindUser(user.Email); if (existingUser != null) { throw new AppException("User already exists!"); } byte[] passwordHash, passwordSalt; _securityService.CreatePasswordHash(password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; await _userRepository.CreateUser(user); return(user); }