// Change Email & Phone private async Task ForceChangePhone() { var changeData = await _shell.ShowForceChangeDialog( EditViewModel.Phone, "Phone", Locales.FirstOrDefault(), Locales.ToList()); if (changeData != null) { try { var newPhone = long.Parse(changeData.Input); var request = new ChangePhoneRequest(changeData.Locale, newPhone, EditViewModel.Id.Value); await _domain0.Client.ForceChangePhoneAsync(request); EditViewModel.Phone = changeData.Input; Models.AddOrUpdate(EditModel); } catch (Exception e) { await _shell.HandleException(e, "Failed to Change Phone"); } } }
public async Task Sms_ClientForceChangePhoneTest() { var testRequest = new ChangePhoneRequest("ru", 3579, 1); var accountRepository = container.Resolve <IAccountRepository>(); var accountRepositoryMock = Mock.Get(accountRepository); accountRepositoryMock .Setup(s => s.FindByUserId(It.IsAny <int>())) .Returns <int>(x => Task.FromResult(new Account { Id = x })); using (var http = new HttpClient()) { var client = new Domain0Client(TEST_URL, http); http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TestContainerBuilder.BuildToken(container, 1, TokenClaims.CLAIM_PERMISSIONS_FORCE_CHANGE_PHONE)); await client.ForceChangePhoneAsync(testRequest); accountRepositoryMock.Verify(ar => ar.Update(It.Is <Account>(a => a.Id == testRequest.UserId && a.Phone == testRequest.NewPhone)), Times.Once()); } }
public async Task ChangePhoneAsync_ShouldBeOkObjectResult() { // Arrange var user = TestData.FileStorage.GetUsers().First(); TestMock.UserService.Setup(userService => userService.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(user).Verifiable(); TestMock.UserService.Setup(userService => userService.UpdatePhoneNumberAsync(It.IsAny <User>(), It.IsAny <string>())) .ReturnsAsync(IdentityResult.Success) .Verifiable(); var controller = new PhoneController(TestMock.UserService.Object, TestMapper); var request = new ChangePhoneRequest { Number = user.PhoneNumber }; // Act var result = await controller.ChangePhoneAsync(request); // Assert result.Should().BeOfType <OkObjectResult>(); result.As <OkObjectResult>().Value.Should().BeEquivalentTo(TestMapper.Map <PhoneDto>(user)); TestMock.UserService.Verify(userService => userService.GetUserAsync(It.IsAny <ClaimsPrincipal>()), Times.Once); TestMock.UserService.Verify(userService => userService.UpdatePhoneNumberAsync(It.IsAny <User>(), It.IsAny <string>()), Times.Once); }
public async Task ShouldBeHttpStatusCodeOK() { const string phoneNumber = "4181112222"; var user = TestData.FileStorage.GetUsers().First(); var factory = TestHost.WithClaimsFromBearerAuthentication(new Claim(JwtClaimTypes.Subject, user.Id.ToString())); _httpClient = factory.CreateClient(); var testServer = factory.Server; testServer.CleanupDbContext(); await testServer.UsingScopeAsync( async scope => { var service = scope.GetRequiredService <IUserService>(); await service.CreateAsync(user); }); var request = new ChangePhoneRequest { Number = phoneNumber }; // Act using var response = await this.ExecuteAsync(request); // Assert response.EnsureSuccessStatusCode(); response.StatusCode.Should().Be(HttpStatusCode.OK); var phone = await response.Content.ReadAsJsonAsync <PhoneDto>(); phone.Number.Should().Be(phoneNumber); }
public async Task ShouldBeHttpStatusCodeBadRequest() { var user = TestData.FileStorage.GetUsers().First(); var factory = TestHost.WithClaimsFromBearerAuthentication(new Claim(JwtClaimTypes.Subject, user.Id.ToString())); _httpClient = factory.CreateClient(); var testServer = factory.Server; testServer.CleanupDbContext(); await testServer.UsingScopeAsync( async scope => { var service = scope.GetRequiredService <IUserService>(); await service.CreateAsync(user); }); var request = new ChangePhoneRequest { Number = string.Empty }; // Act using var response = await this.ExecuteAsync(request); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
/// <summary> /// Change Phone Async. /// </summary> /// <param name="request">The <see cref="ChangePhoneRequest{TIdentity}"/>.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param> /// <returns>Void.</returns> public virtual async Task ChangePhoneAsync(ChangePhoneRequest <TIdentity> request, CancellationToken cancellationToken = default) { if (request == null) { throw new ArgumentNullException(nameof(request)); } request.Controller = BaseIdentityApi <TUser, TIdentity> .IdentityController; await this.InvokeAsync(request, cancellationToken); }
public async Task <IActionResult> ChangePhone([FromBody] ChangePhoneRequest request, [FromServices] IEmailService emailService, [FromServices] IAuthenticationManager authentication) { var email = User.Identity.Name; await authentication.EditPhoneAsync(new UserAccountRequest { Email = email, Phone = request.Phone }); emailService.SendEmail(email, "Изменение номера телефона на Smartcontract.kz", "Вы успешно сменили номер телефона в системе Smartcontract.kz."); return(Json(ApiResponse.Success(true))); }
public async Task <IActionResult> ChangePhoneAsync([FromBody] ChangePhoneRequest request) { var user = await _userService.GetUserAsync(User); var result = await _userService.UpdatePhoneNumberAsync(user, request.Number); if (result.Succeeded) { return(this.Ok(_mapper.Map <PhoneDto>(user))); } ModelState.Bind(result); return(this.BadRequest(new ValidationProblemDetails(ModelState))); }
private async Task <HttpResponseMessage> ExecuteAsync(ChangePhoneRequest request) { return(await _httpClient.PostAsJsonAsync("api/phone", request)); }