Example #1
0
        public User Create(string email, string plainTextPassword)
        {
            var query        = new FindUserByEmailQuery(email);
            var existingUser = _queryExecutor.Execute(query);

            if (existingUser.Count > 0)
            {
                throw new EmailAddressAlreadyTakenException();
            }

            var hashedPassword = _passwordHashingService.SaltAndHash(plainTextPassword);
            var user           = User.Register(email, hashedPassword, _clock.UtcNow);

            _userRepository.Add(user);

            return(user);
        }