public async Task Create(CreateUserRequestModel model) { await new CreateUserValidator().ValidateRequestModelAndThrow(model); User user = new User(model.Name, model.Email, model.Password); await ThrowIfUserNameAlreadyExists(user.Name); await ThrowIfUserEmailAlreadyExists(user.Email); user.UpdateConfirmationCode(_randomCodeUtils.GenerateRandomCode()); user.UpdatePassword(_hashUtils.GenerateHash(user.Password)); Stream userDefaultProfileImage = _fileUploadUtils.GetDefaultUserProfileImage(); FileDTO uploadedProfileImage = await _fileUploadUtils.UploadImage(userDefaultProfileImage); ProfileImage image = new ProfileImage(uploadedProfileImage.FileName, uploadedProfileImage.FilePath); user.AddProfileImage(image); await _userRepository.Create(user); await _userRepository.Save(); await _emailUtils.SendEmail(user.Email, "Confirmation", $"Please confirm your account using this code {user.ConfirmationCode}"); }
public void ShouldGenerateRandomConfirmationCode() { string confirmationCode = _randomCodeUtils.GenerateRandomCode(); Assert.NotNull(confirmationCode); Assert.Equal(8, confirmationCode.Length); }