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()); } }