public void RegisterUser(string username, string plainTextPassword) { var existingUser = _userRepository.FindUserByUsername(username); if (existingUser != null) { throw new ArgumentException($"User {username} already exists"); } var saltedPassword = _passwordService.ProtectPassword(plainTextPassword); var newUser = new User { ID = Guid.NewGuid(), Username = username, SaltedPassword = saltedPassword }; _userRepository.Save(newUser); }