public async Task <ActionResult> CompleteRegister(CompleteRegisterViewModel value) { if (!string.IsNullOrWhiteSpace(value.DeviceResponse) && !string.IsNullOrWhiteSpace(value.UserName)) { try { value.DeviceResponse = await _membershipService.CompleteRegistration(value.UserName, value.DeviceResponse) ? "Registration was successful." : "Registration failed."; return(View("SucessfulRegister", new CompleteRegisterViewModel { UserName = value.UserName, DeviceResponse = value.DeviceResponse })); } catch (Exception e) { _logger.LogError(e.Message); ModelState.AddModelError("CustomError", e.Message); return(View("FinishRegister", value)); } } ModelState.AddModelError("CustomError", "bad username/device response"); return(View("FinishRegister", value)); }
public async Task <IActionResult> ChangeUserInfo() { if (!ModelState.IsValid) { return(View()); } //var model = from u in _context.AppUsers select new { Id = u.Id, Wallet = u.Wallet }; var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } // MUST explicity load the user Wallet _context.Entry(user).Reference(s => s.UserAddress).Load(); var address = user.UserAddress; var model = new CompleteRegisterViewModel { FirstName = user.FirstName, LastName = user.LastName, PhoneNumber = user.PhoneNumber, Addressline1 = address.Addressline1, Addressline2 = address.Addressline2, City = address.City, Province = address.Province, Country = address.Country, ZipCode = address.ZipCode }; return(View(model)); }
public async Task <ActionResult> BeginRegister(StartRegisterViewModel viewModel) { bool isUserRegistered = await _membershipService.IsUserRegistered(viewModel.UserName); if (isUserRegistered) { ModelState.AddModelError("CustomError", "User is already registered."); return(View("Register", viewModel)); } if (!string.IsNullOrWhiteSpace(viewModel.Password) && !string.IsNullOrWhiteSpace(viewModel.UserName) && viewModel.Password.Equals(viewModel.ConfirmPassword)) { try { bool result = await _membershipService.SaveNewUser(viewModel.UserName, viewModel.Password, viewModel.Email); if (!result) { throw new Exception("Failed to create user"); } ServerRegisterResponse serverRegisterResponse = await _membershipService.GenerateServerChallenge(viewModel.UserName); CompleteRegisterViewModel registerModel = new CompleteRegisterViewModel { UserName = viewModel.UserName, AppId = serverRegisterResponse.AppId, Challenge = serverRegisterResponse.Challenge, Version = serverRegisterResponse.Version }; return(View("FinishRegister", registerModel)); } catch (Exception e) { _logger.LogError(e.Message); ModelState.AddModelError("CustomError", e.Message); return(View("Register", viewModel)); } } ModelState.AddModelError("CustomError", "invalid input"); return(View("Register", viewModel)); }
public async Task <IActionResult> CompleteRegister(CompleteRegisterViewModel model, string returnUrl = null) { string userId = HttpContext.Session.GetString("userid"); if (ModelState.IsValid) { var user = await _userManager.FindByIdAsync(userId); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{user.Id}'."); } // update database from fields user.FirstName = model.FirstName; user.LastName = model.LastName; user.BirthDate = model.BirthDate; user.PhoneNumber = model.PhoneNumber; // populate & add UserAddress object var address = new Address { Addressline1 = model.Addressline1, Addressline2 = model.Addressline2, City = model.City, Province = model.Province, Country = model.Country, ZipCode = model.ZipCode }; user.UserAddress = address; _logger.LogInformation("User Registration Complete"); user.Status = UserStatus.Activated; await _context.SaveChangesAsync(); // display home page return(View("ConfirmEmail")); } // If we got this far, something failed, redisplay registration form return(View(model)); }
public async Task <IActionResult> GetChallenge() { try { List <ServerChallenge> serverRegisterResponse = await _membershipService.GenerateDeviceChallenges(HttpContext.User.Identity.Name); CompleteRegisterViewModel registerModel = new CompleteRegisterViewModel { UserName = HttpContext.User.Identity.Name, AppId = serverRegisterResponse[0].appId, Challenge = serverRegisterResponse[0].challenge, Version = serverRegisterResponse[0].version }; return(new JsonResult(JsonConvert.SerializeObject(registerModel))); } catch (Exception exception) { _logger.LogError(exception.Message); } return(NoContent()); }
public async Task <IActionResult> ChangeUserInfo(CompleteRegisterViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } _context.Entry(user).Reference(s => s.UserAddress).Load(); var address = user.UserAddress; // update database from fields user.FirstName = model.FirstName; user.LastName = model.LastName; user.PhoneNumber = model.PhoneNumber; address.Addressline1 = model.Addressline1; address.Addressline2 = model.Addressline2; address.City = model.City; address.Province = model.Province; address.Country = model.Country; address.ZipCode = model.ZipCode; await _context.SaveChangesAsync(); _logger.LogInformation("User changed their information successfully."); StatusMessage = "Your information has been updated."; return(RedirectToAction(nameof(Index))); }