Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async Task<UserDto> RegisterNewUserAccount(CreateAccountDto userInfo)
- {
- EnsureUserDoesNotAlreadyExist(userInfo);
- EnsureRfidCardIsNotAlreadyClaimed(userInfo);
- var user = new UserDto()
- {
- Email = userInfo.EmailAddress.ToLower(),
- FirstAndLastName = userInfo.FirstAndLastName,
- Rank = 1200,
- JoinedTimestamp = DateTime.UtcNow.ToString()
- };
- await _usersRepository.CreateUser(user);
- var passwordHasher = new PasswordHasher<AccountCredentials>();
- var credentials = new AccountCredentials()
- {
- Email = userInfo.EmailAddress.ToLower(),
- HashedPassword = passwordHasher.HashPassword(null, userInfo.Password)
- };
- await _accountCredentialsRepository.InsertNewUserCredentials(credentials);
- await _emailSender.SendNewUserWelcomeEmail(userInfo);
- return await _usersRepository.GetUserWithEmail(user.Email);
- }
- private void EnsureUserDoesNotAlreadyExist(CreateAccountDto userInfo)
- {
- if (_usersRepository.GetUserWithEmail(userInfo.EmailAddress) != null)
- {
- throw new ResourceAlreadyExistsException("Email already in use.");
- }
- }
- private void EnsureRfidCardIsNotAlreadyClaimed(CreateAccountDto userInfo)
- {
- if (_usersRepository.GetUserWithRfid(userInfo.RfidNumber) != null)
- {
- throw new ResourceAlreadyExistsException("RFID card already in use.");
- }
- }
Add Comment
Please, Sign In to add comment