public async Task <UserDto> RegisterAsync(RegisterUserDto registerUserDto) { bool emailIsAlreadyTaken = _tripFlipDbContext .Users .Any(user => user.Email == registerUserDto.Email); if (emailIsAlreadyTaken) { throw new ArgumentException(ErrorConstants.EmailIsTaken); } var userEntity = _mapper.Map <UserEntity>(registerUserDto); userEntity.PasswordHash = PasswordHasherHelper.HashPassword(registerUserDto.Password); await _tripFlipDbContext.Users.AddAsync(userEntity); await _tripFlipDbContext.SaveChangesAsync(); await EmailUserNotifierHelper.NotifyRegisteredUserAsync( userEntity.Email, _environment, _mailService, _mailServiceConfiguration); var userDto = _mapper.Map <UserDto>(userEntity); return(userDto); }
/// <summary> /// Registers new user, randomizing his password. /// </summary> /// <param name="email">Email to register user with.</param> /// <returns>Registered user entity.</returns> private async Task <UserEntity> RegisterAsync(string email) { var userToRegister = CreateUserEntityWithRandomPassword(email); await _tripFlipDbContext.Users.AddAsync(userToRegister); await _tripFlipDbContext.SaveChangesAsync(); await EmailUserNotifierHelper.NotifyRegisteredUserAsync( email, _environment, _mailService, _mailServiceConfiguration); return(userToRegister); }