public AuthorizeModel Register(RegisterViewModel registerViewModel) { if (!new EmailAddressAttribute().IsValid(registerViewModel.UserName)) { throw new Exception("Invalid E-mail"); } if (!_passwordHelper.GetPasswordRegex(registerViewModel.Password)) { throw new Exception("Invalid Credentials"); } var user = _userRepository.GetUserByUserName(registerViewModel.UserName); if (user != null) { throw new Exception("User already exists"); } if (registerViewModel.Password != registerViewModel.ConfirmPassword) { throw new Exception("Invalid Credentials"); } (string salt, string hashedPassword) = _hashHelper.Hash(registerViewModel.Password); var createdUser = new User { UserName = registerViewModel.UserName, FirstName = registerViewModel.FirstName, LastName = registerViewModel.LastName, Password = hashedPassword, Salt = salt, Balance = 1000, Role = Role.Player }; _userRepository.Create(createdUser); var model = new AuthorizeModel { Id = createdUser.Id, UserName = createdUser.UserName }; model.Token = _tokenHelper.GenerateToken(createdUser.UserName, createdUser.Id, createdUser.Role); return(model); }
public AuthorizeModel Register(UserRegisterModel userRegister) { if (!new EmailAddressAttribute().IsValid(userRegister.Email)) { throw new Exception("Please enter valid Email format"); } if (!_passwordRegex.GetPasswordRegex(userRegister.Password)) { throw new Exception("You need to add at least one lower case," + " at least one upper case, at least one number, at least one special character, minimum 8 characters"); } if (userRegister.Password != userRegister.ConfirmPassword) { throw new Exception("Invalid Credentials"); } var userExists = _userRepository.GetUserByEmail(userRegister.Email); if (userExists != null) { throw new Exception("There is already User with that E-mail"); } (string salt, string hashedPassword) = _hashHelper.Hash(userRegister.Password); var user = new User { FirstName = userRegister.FirstName, LastName = userRegister.LastName, Email = userRegister.Email, Password = hashedPassword, Salt = salt, Role = RoleEnum.Customer }; _userRepository.Create(user); var mappedUser = new AuthorizeModel { Id = user.Id, Email = user.Email }; mappedUser.Token = _tokenHelper.GenerateToken(user.Email, user.Id, user.Role); return(mappedUser); }