Guest User

Untitled

a guest
Jan 19th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. public async Task<UserDto> RegisterNewUserAccount(CreateAccountDto userInfo)
  2. {
  3. EnsureUserDoesNotAlreadyExist(userInfo);
  4. EnsureRfidCardIsNotAlreadyClaimed(userInfo);
  5.  
  6. var user = new UserDto()
  7. {
  8. Email = userInfo.EmailAddress.ToLower(),
  9. FirstAndLastName = userInfo.FirstAndLastName,
  10. Rank = 1200,
  11. JoinedTimestamp = DateTime.UtcNow.ToString()
  12. };
  13.  
  14. await _usersRepository.CreateUser(user);
  15.  
  16. var passwordHasher = new PasswordHasher<AccountCredentials>();
  17. var credentials = new AccountCredentials()
  18. {
  19. Email = userInfo.EmailAddress.ToLower(),
  20. HashedPassword = passwordHasher.HashPassword(null, userInfo.Password)
  21. };
  22.  
  23. await _accountCredentialsRepository.InsertNewUserCredentials(credentials);
  24. await _emailSender.SendNewUserWelcomeEmail(userInfo);
  25.  
  26. return await _usersRepository.GetUserWithEmail(user.Email);
  27. }
  28.  
  29. private void EnsureUserDoesNotAlreadyExist(CreateAccountDto userInfo)
  30. {
  31. if (_usersRepository.GetUserWithEmail(userInfo.EmailAddress) != null)
  32. {
  33. throw new ResourceAlreadyExistsException("Email already in use.");
  34. }
  35. }
  36.  
  37. private void EnsureRfidCardIsNotAlreadyClaimed(CreateAccountDto userInfo)
  38. {
  39. if (_usersRepository.GetUserWithRfid(userInfo.RfidNumber) != null)
  40. {
  41. throw new ResourceAlreadyExistsException("RFID card already in use.");
  42. }
  43. }
Add Comment
Please, Sign In to add comment