예제 #1
0
        public async Task <string> Register(string userName, string password)
        {
            using (var trans = _unitOfWork.BeginTransaction())
            {
                var userEntity = await _repository.GetByName(userName);

                if (userEntity != null)
                {
                    throw new Exception("user already exists");
                }

                userEntity = new UserEntity()
                {
                    Name     = userName,
                    Password = _passwordProvider.GetPasswordHash(password),
                    Created  = _currentDate.Now
                };

                _repository.Add(userEntity);

                await trans.SaveChangesAsync();

                await _initRepository.Initialize(userEntity.UserId);

                await CommitTransaction(trans);

                return(userEntity.UserId.ToString());
            }
        }