public App() { InitializeComponent(); if (AuthModel.MobilePhoneNumber != null) { MainPage = new NavigationPage(new MainPage()); } else { MainPage = new AddPhoneNumber(); } //((App.Current as App).MainPage as NavigationPage).PushAsync() }
public async Task <IActionResult> AddPhoneNumber(AddPhoneNumber model) { if (!_accessor.ActionContext.ModelState.IsValid) { return(new OkObjectResult(model)); } // Generate the token and send it var user = await GetCurrentUserAsync(); var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, model.PhoneNumber); await _smsSender.SendSmsAsync(model.PhoneNumber, "Your security code is: " + code); return(new RedirectToActionResult(nameof(VerifyPhoneNumber), nameof(ManageController), new { PhoneNumber = model.PhoneNumber })); }
public async Task <IActionResult> AddPhoneNumberAsync([FromBody] AddPhoneNumber model) { ApplicationUser user; try { user = await _userManager.FindByIdAsync(model.Id); if (user == null) { _logger.LogError("~/Account/AddPhoneNumberAsync(AddPhoneNumber) - userManager unable to retrieve User Id:{0}'s information. This should have been a valid user.", model.Id); return(Unauthorized()); } } catch (Exception ex) { _logger.LogError("!/Account/AddPhoneNumberAsync(AddPhoneNumber) - UserManger encountered and error connecting to the database. {0}", ex); return(StatusCode(503, new ApiResponse(503, "Error connecting to the database."))); } string code; try { code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, model.PhoneNumber); } catch (Exception ex) { _logger.LogError("~/Account/PhoneNumber(AddPhoneNumberViewModel) - userManager was not able to generate verification code for User Id:{0}. Error: {1}", model.Id, ex); throw; } AddPhoneNumber responseObj = new AddPhoneNumber { Id = user.Id, PhoneNumber = model.PhoneNumber, Code = code, }; string response = JsonSerializer.Serialize <AddPhoneNumber>(responseObj); return(Ok(response)); }
public async Task <IActionResult> VerifyPhoneNumberAsync([FromBody] AddPhoneNumber model) { ApplicationUser user; try { user = await _userManager.FindByIdAsync(model.Id); if (user == null) { _logger.LogError("~/Account/VerifyPhoneNumber(VerifyPhoneNumberViewModel) - userManager unable to retrieve User Id:{0}'s information. This should have been a valid user.", model.Id); return(Unauthorized()); } } catch (Exception ex) { _logger.LogError("UserManger encountered an error. Connecting to the database? {0}", ex); return(StatusCode(503, new ApiResponse(503, "Error connecting to the database."))); } try { IdentityResult result = await _userManager.ChangePhoneNumberAsync(user, model.PhoneNumber, model.Code); if (!result.Succeeded) { string errors = BuildErrorString(result); _logger.LogError("~/Account/VerifyPhoneNumber(VerifyPhoneNumber) - userManager unable to add/change phone number for {0}'s account. Errors:{1}", user.Id, errors); return(StatusCode(400, new ApiResponse(400, "An error occurred while attempting to verifiy your phone number. Did you enter the correct Verification Code?"))); } _logger.LogInformation("User id:{0} successfully verified thier phone number.", model.Id); return(Ok("The phone number verification was a success")); } catch (Exception ex) { _logger.LogError("UserManger encountered an error. Connecting to the database? {0}", ex); return(StatusCode(503, new ApiResponse(503, "Error connecting to the database."))); } }