public string CreateUser(string userEmail, string userFirstName, string userLastName) { if (IsUserExist(userEmail)) { throw new UserAlreadyExistException(userEmail); } var userModel = new UserModel { Email = userEmail, FirstName = userFirstName, LastName = userLastName, IsAdmin = false, IsActivated = false, // Here is our HASH for activating link Salt = Randomizer.GetString(16), // Empty password field is not good UserPassword = _cryptoProvider.CreateHashForPassword(Randomizer.GetString(16), _cryptoProvider.GetNewSalt()) }; using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork()) { unitOfWork.Users.Add(userModel); unitOfWork.SaveChanges(); int userId = unitOfWork.Users.Find(user => user.Email == userEmail).Id; _albumService.CreateSystemAlbums(userId); } return(userModel.Salt); }