Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }