public async Task <IActionResult> EnterCode(EnterCodeViewModel model) { var user = await GetCurrentUserAsync(); if (!ModelState.IsValid) { model.Recover(user); model.ModelStateValid = ModelState.IsValid; return(View(model)); } var correctToken = await _userManager.VerifyChangePhoneNumberTokenAsync(user, model.Code, model.NewPhoneNumber); if (correctToken) { var result = await UserService.SetPhoneNumberAsync(user.Id, await AppsContainer.AccessToken()(), model.NewPhoneNumber); if (result.Code == ErrorType.Success) { user.PhoneNumber = model.NewPhoneNumber; await _userManager.UpdateAsync(user); return(RedirectToAction(nameof(Phone), new { JustHaveUpdated = true })); } throw new InvalidOperationException(); } else { model.ModelStateValid = false; model.Recover(user); ModelState.AddModelError("", "Your token is invalid!"); return(View(model)); } }
public async Task<IActionResult> EnterCode(string NewPhoneNumber) { var user = await GetCurrentUserAsync(); var model = new EnterCodeViewModel(user) { NewPhoneNumber = NewPhoneNumber }; return View(model); }
public void SetViewModel(EnterCodeViewModel viewModel) { DataContext = viewModel; }