public async Task <ActionResult> UpdatePhoneNumber([FromForm] UpdatePhoneNumberModel formModel) { TryValidateModel(formModel); if (!ModelState.IsValid) { return(View("customers/phone_number", WorkContext)); } // Generate the token and send it var code = await _signInManager.UserManager.GenerateChangePhoneNumberTokenAsync(WorkContext.CurrentUser, formModel.PhoneNumber); var changePhoneNumberSmsNotification = new ChangePhoneNumberSmsNotification(WorkContext.CurrentStore.Id, WorkContext.CurrentLanguage) { Token = code, Recipient = formModel.PhoneNumber, }; var sendingResult = await SendNotificationAsync(changePhoneNumberSmsNotification); if (sendingResult.IsSuccess != true) { WorkContext.Form.Errors.Add(SecurityErrorDescriber.ErrorSendNotification(sendingResult.ErrorMessage)); WorkContext.Form = Form.FromObject(formModel); return(View("customers/phone_number", WorkContext)); } WorkContext.Form = Form.FromObject(new VerifyPhoneNumberModel { PhoneNumber = formModel.PhoneNumber }); return(View("customers/verify_phone_number", WorkContext)); }
public async Task <ApiResponse> UpdatePhoneNumber([FromBody] UpdatePhoneNumberModel model) { var response = await _mediator.Send( Mapper.Map <UpdatePhoneNumberModel, UpdatePhoneNumberCommand>(model)); if (response.IsSuccess) { return(ApiResponseHandler.GenerateResponse(response.Type, response.Data)); } return(ApiResponseHandler.GenerateResponse(response.Type, null, ApiError.GenerateError(response))); }
public async Task <ActionResult <UpdatePhoneNumberResult> > UpdatePhoneNumber([FromBody] UpdatePhoneNumberModel model) { TryValidateModel(model); if (!ModelState.IsValid) { return(new UpdatePhoneNumberResult { Succeeded = false, Error = "Phone number is not valid" }); } var code = await _signInManager.UserManager.GenerateChangePhoneNumberTokenAsync(WorkContext.CurrentUser, model.PhoneNumber); var result = await _signInManager.UserManager.ChangePhoneNumberAsync(WorkContext.CurrentUser, model.PhoneNumber, code); await _signInManager.SignInAsync(WorkContext.CurrentUser, isPersistent : false); return(new UpdatePhoneNumberResult { Succeeded = result.Succeeded }); }
public async Task <ActionResult <UpdatePhoneNumberResult> > UpdatePhoneNumber([FromBody] UpdatePhoneNumberModel model) { var twoFactorAuthEnabled = await _signInManager.UserManager.GetTwoFactorEnabledAsync(WorkContext.CurrentUser); if (twoFactorAuthEnabled) { return(Forbid()); } TryValidateModel(model); if (!ModelState.IsValid) { return(new UpdatePhoneNumberResult { Succeeded = false, Error = "Phone number is not valid" }); } var result = await _signInManager.UserManager.SetPhoneNumberAsync(WorkContext.CurrentUser, model.PhoneNumber); await _signInManager.SignInAsync(WorkContext.CurrentUser, isPersistent : false); return(new UpdatePhoneNumberResult { Succeeded = result.Succeeded }); }