public void Create_Should_Return_Fail_Result_For_Invalid_Characters_In_CountryCode(string phoneNumber, string countryCode) { var userPhoneNumberResult = UserPhoneNumber.Create(phoneNumber, countryCode); userPhoneNumberResult.IsSuccessed.Should().BeFalse(); userPhoneNumberResult.GetErrorString().Should().Be(UserPhoneNumber.Country_Contains_Special_Char); }
public void Create_Should_Return_Fail_Result_For_PhoneNumber_Longer_Than_Ten_Digits(string phoneNumber, string countryCode) { var userPhoneNumberResult = UserPhoneNumber.Create(phoneNumber, countryCode); userPhoneNumberResult.IsSuccessed.Should().BeFalse(); userPhoneNumberResult.GetErrorString().Should().Be(UserPhoneNumber.Phonenumber_Should_Not_Exceed_Ten_Characters); }
public void Create_Should_Return_Fail_Result_For_Invalid_countryCode(string phoneNumber, string countryCode) { var userPhoneNumberResult = UserPhoneNumber.Create(phoneNumber, countryCode); userPhoneNumberResult.IsSuccessed.Should().BeFalse(); userPhoneNumberResult.GetErrorString().Should().Be(UserPhoneNumber.Country_Code_Should_Not_Be_Null_Or_Empty); }
private static Result <User> BuildUser(UserRegistrationDTO userRegistrationDTO, byte[] randomByteArray) { var hashingServiceMock = new Mock <IHashingService>(); var ageResult = Age.Create(userRegistrationDTO.DateOfBirth); var lookingForGenderResult = Gender.Create(userRegistrationDTO.LookingFor); var matchPreference = UserMatchPreference.Create(lookingForGenderResult.Value, userRegistrationDTO.MinAge, userRegistrationDTO.MaxAge, userRegistrationDTO.Distance); var phoneNumberResult = UserPhoneNumber.Create(userRegistrationDTO.PhoneNumber, userRegistrationDTO.CountryCode); var genderResult = Gender.Create(userRegistrationDTO.Gender); var loctionResult = Location.Create(userRegistrationDTO.Latitude, userRegistrationDTO.Longitude); hashingServiceMock.Setup(x => x.GenerateSalt()).Returns(randomByteArray); hashingServiceMock.Setup(x => x.GetHash(userRegistrationDTO.Password, It.IsAny <byte[]>())).Returns(randomByteArray); var passwordSalt = hashingServiceMock.Object.GenerateSalt(); var passwordHash = hashingServiceMock.Object.GetHash(userRegistrationDTO.Password, passwordSalt); var passwordResult = Password.Create(passwordHash, passwordSalt); var result = UserBuilder.Builder() .WithName(userRegistrationDTO.FullName) .WithPhoneNumber(phoneNumberResult.Value) .WithPassword(passwordResult.Value) .WithGender(genderResult.Value) .WithMatchPreference(matchPreference.Value) .WithAge(ageResult.Value) .WithBucketList(userRegistrationDTO.BucketList) .WithFunAndInterestingThings(userRegistrationDTO.FunAndInteresting) .WithSchool(userRegistrationDTO.School) .WithProfession(userRegistrationDTO.Profession) .WithLocation(loctionResult.Value) .Build(); return(result); }
public async Task <Result <User> > CreateUserAsync(UserRegistrationDTO userRegistrationDTO) { if (string.IsNullOrWhiteSpace(userRegistrationDTO.Password)) { return(Result.Fail <User>(Password_Is_Required)); } var ageResult = Age.Create(userRegistrationDTO.DateOfBirth); var lookingForGenderResult = Gender.Create(userRegistrationDTO.LookingFor); var matchPreference = UserMatchPreference.Create(lookingForGenderResult.Value, userRegistrationDTO.MinAge, userRegistrationDTO.MaxAge, userRegistrationDTO.Distance); var phoneNumberResult = UserPhoneNumber.Create(userRegistrationDTO.PhoneNumber, userRegistrationDTO.CountryCode); var genderResult = Gender.Create(userRegistrationDTO.Gender); var passwordSalt = _hashingService.GenerateSalt(); var passwordHash = _hashingService.GetHash(userRegistrationDTO.Password, passwordSalt); var passwordResult = Password.Create(passwordHash, passwordSalt); var locationResult = Location.Create(userRegistrationDTO.Latitude, userRegistrationDTO.Longitude); var finalResult = Result.Combine(ageResult, lookingForGenderResult, matchPreference, phoneNumberResult, genderResult, passwordResult, locationResult); if (!finalResult.IsSuccessed) { return(Result.Fail <User>(finalResult.GetErrorString())); } var userResult = UserBuilder.Builder() .WithName(userRegistrationDTO.FullName) .WithPhoneNumber(phoneNumberResult.Value) .WithPassword(passwordResult.Value) .WithGender(genderResult.Value) .WithMatchPreference(matchPreference.Value) .WithAge(ageResult.Value) .WithBucketList(userRegistrationDTO.BucketList) .WithFunAndInterestingThings(userRegistrationDTO.FunAndInteresting) .WithSchool(userRegistrationDTO.School) .WithProfession(userRegistrationDTO.Profession) .WithLocation(locationResult.Value) .Build(); var setUserInterestsResult = await _userDomainService.SetUserInterests(userResult.Value, userRegistrationDTO.InterestIds); if (!setUserInterestsResult.IsSuccessed) { return(Result.Fail <User>(setUserInterestsResult.GetErrorString())); } return(userResult); }
public async Task <IHttpActionResult> PutPhoneNumber(PutPhoneNumberBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } ApplicationUser user = UserManager.FindById(User.Identity.GetUserId()); if (user == null) { return(null); } UserPhoneNumber existingPhoneNumber = user.PhoneNumbers.FirstOrDefault(ph => ph.Value == model.OldPhoneNumber); if (existingPhoneNumber == null) { ModelState.AddModelError("OldEmail", $"Номер телефона {model.OldPhoneNumber} не найден"); } if (user.PhoneNumbers.Any(ph => ph.Value == model.NewPhoneNumber)) { ModelState.AddModelError("NewEmail", $"Номер телефона {model.NewPhoneNumber} уже существует"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } user.PhoneNumbers.Remove(existingPhoneNumber); DBContext.Entry(existingPhoneNumber).State = EntityState.Deleted; user.PhoneNumbers.Add(new UserPhoneNumber() { Value = model.NewPhoneNumber }); IdentityResult result = await UserManager.UpdateAsync(user); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }
public async Task <IActionResult> ValidateVerificationCode([FromBody] ValidatePhoneVerificationDTO validateDTO) { if (validateDTO == null) { return(BadRequest(Constants.CommonErrorMessages.Request_Is_Not_Valid)); } var phoneResult = UserPhoneNumber.Create(validateDTO.PhoneNumber, validateDTO.CountryCode); if (!phoneResult.IsSuccessed) { return(BadRequest(phoneResult.GetErrorString())); } var result = await _phoneVerificationService.ValidateVerificationCodeAsync(validateDTO.CountryCode, validateDTO.PhoneNumber, validateDTO.VerificationCode); if (!result.IsSuccessed) { return(BadRequest(result.GetErrorString())); } return(Ok(Constants.PhoneVerifyMessages.Verification_Completed)); }
public virtual void SetPhoneNumber(UserPhoneNumber mongoUserPhoneNumber) { PhoneNumber = mongoUserPhoneNumber; }
public virtual void SetPhoneNumber(string phoneNumber) { var mongoUserPhoneNumber = new UserPhoneNumber(phoneNumber); SetPhoneNumber(mongoUserPhoneNumber); }
public UserBuilder WithPhoneNumber(UserPhoneNumber phoneNumber) { this._phoneNumber = phoneNumber; return(this); }
public void Create_Should_Return_Success_Result_For_Valid_phoneNumber_And_countryCode(string phoneNumber, string countryCode) { var userPhoneNumberResult = UserPhoneNumber.Create(phoneNumber, countryCode); userPhoneNumberResult.IsSuccessed.Should().BeTrue(); }