public async Task <ActionResult> ChangeDetails(ChangeDetailsViewModel model) { if (!(await Authorized())) { return(AccountLogin()); } if (!ModelState.IsValid) { return(View(model)); } FullUser user = new FullUser(model.FullName, model.BirthDate, model.City, model.WorkPlace); var result = await AccountManager.ChangeUserDetailsAsync(UserToken, user); if (result.Success) { DisplayUserInfo = user; return(RedirectToAction("Index", new { Message = ManageMessageId.ChangeDetailsSuccess })); } else { AddError(result.UserErrorMessage); return(View(new { Message = ManageMessageId.Error })); } }
public async Task <ActionResult> Save(ChangeDetailsViewModel model) { var manager = new UserManager <Member>(new UserStore <Member>(new ApplicationDbContext())); var userId = User.Identity.GetUserId(); var user = new Member { FirstName = model.FirstName, LastName = model.LastName, HouseNumber = model.HouseNumber, Street = model.Street, Town = model.Town, Postcode = model.Postcode, TelephNo = model.TelephNo, UserName = model.Email, Email = model.Email }; var userInDb = manager.FindById(userId); userInDb.FirstName = user.FirstName; userInDb.LastName = user.LastName; userInDb.HouseNumber = user.HouseNumber; userInDb.Street = user.Street; userInDb.Town = user.Town; userInDb.Postcode = user.Postcode; userInDb.TelephNo = user.TelephNo; userInDb.Email = user.Email; IdentityResult result = await manager.UpdateAsync(userInDb); context.SaveChanges(); MigrateShoppingCart(model.Email); return(RedirectToAction("Index", "Manage")); }
public ChangeBrowserViewModel() { ButtonBarViewModel = new ButtonBarViewModel(this); ChangeListViewModel = new ChangeListViewModel(this, new ChangeRepository()); ChangeDetailsViewModel = new ChangeDetailsViewModel(new GitService(), VisualStudioWorkspaceService.Instance); GerritSettingsViewModel = new GerritSettingsViewModel(); }
public async Task <IActionResult> ChangeDetails([FromForm] ChangeDetailsViewModel formData) { var checkResult = await CheckUserRegisteredOkAsync(); if (checkResult != null) { return(checkResult); } // Validate fields if (ModelState.IsValid == false) { return(View(nameof(ChangeDetails), formData)); } // Execute change details var success = await ChangeDetailsService.ChangeDetailsAsync(formData, VirtualUser); // set success alert flag if (success) { TempData.Add(nameof(AccountResources.ChangeDetailsSuccessAlert), true); } // go to manage account page return(RedirectToAction <AccountController>(nameof(AccountController.ManageAccount))); }
public async Task <bool> ChangeDetailsAsync(ChangeDetailsViewModel model, string username) { var user = await _userManager.FindByNameAsync(username); if (user == null) { return(false); } if (!string.IsNullOrWhiteSpace(model.FirstName)) { user.FirstName = model.FirstName; } if (!string.IsNullOrWhiteSpace(model.LastName)) { user.LastName = model.LastName; } if (!string.IsNullOrWhiteSpace(model.PhoneNumber)) { user.PhoneNumber = model.PhoneNumber; } if (!string.IsNullOrWhiteSpace(model.FirstName)) { user.PostcodeZone = model.PostcodeZone; } var result = await _userManager.UpdateAsync(user); return(result.Succeeded); }
public async Task <bool> ChangeDetailsAsync(ChangeDetailsViewModel newDetails, User currentUser) { // map to business domain model var mappedDetails = AutoMapper.Map <UpdateDetailsModel>(newDetails); // execute update details return(await UserRepository.UpdateDetailsAsync(currentUser, mappedDetails)); }
// // GET: /Manage/ChangeDetails public ActionResult ChangeDetails() { var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); var model = new ChangeDetailsViewModel(); model.Username = user.UserName; model.Name = user.Name; model.Surname = user.Surname; model.Email = user.Email; return(View(model)); }
public async Task <IActionResult> EditDetails(ChangeDetailsViewModel model) { if (!await _dataservice.ChangeDetailsAsync(model, User.Identity.Name)) { ModelState.AddModelError("", "Details could not be changed"); return(View(model)); } TempData["Success"] = "Password changed successfully."; return(View(new ChangeDetailsViewModel())); }
public ActionResult ChangeDetails(ChangeDetailsViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); user.Name = model.Name; user.Surname = model.Surname; user.Email = model.Email; user.UserName = model.Username; db.SaveChanges(); return(RedirectToAction("Index", "Manage")); }
/// <summary> /// Changes the details. /// </summary> /// <param name="id">The identifier.</param> /// <returns>ActionResult.</returns> public ActionResult ChangeDetails(string id) { var manager = new UserManager <User>(new UserStore <User>(new ApplicationDbContext())); var userId = User.Identity.GetUserId(); var user = manager.FindById(userId); if (user == null) { return(HttpNotFound()); } var viewModel = new ChangeDetailsViewModel { User = manager.FindById(userId) }; return(View("ChangeDetails", viewModel)); }
public async Task POST_SavesChangeDetailsModelToUserEntity() { // Arrange User verifiedUser = UserHelper.GetNotAdminUserWithVerifiedEmailAddress(); var controller = UiTestHelper.GetController <ModernSlavery.WebUI.Areas.Account.Controllers.ChangeDetailsController>( verifiedUser.UserId, mockRouteData, verifiedUser); var testViewModel = new ChangeDetailsViewModel { FirstName = $"NewFirstName{verifiedUser.UserId}", LastName = $"NewLastName{verifiedUser.UserId}", JobTitle = $"NewJobTitle{verifiedUser.UserId}", ContactPhoneNumber = $"NewContactPhoneNumber{verifiedUser.UserId}", AllowContact = !verifiedUser.AllowContact, SendUpdates = !verifiedUser.SendUpdates }; // Act var redirectToActionResult = await controller.ChangeDetails(testViewModel) as RedirectToActionResult; // Assert Assert.NotNull(redirectToActionResult); Assert.AreEqual( nameof(ModernSlavery.WebUI.Areas.Account.Controllers.AccountController.ManageAccount), redirectToActionResult.ActionName); // Assert success flag Assert.IsTrue(controller.TempData.ContainsKey(nameof(AccountResources.ChangeDetailsSuccessAlert))); // Assert user details testViewModel.Compare(verifiedUser); // Assert contact point details Assert.AreEqual(verifiedUser.ContactFirstName, testViewModel.FirstName, "Expected ContactFirstName to match"); Assert.AreEqual(verifiedUser.ContactLastName, testViewModel.LastName, "Expected ContactLastName to match"); Assert.AreEqual(verifiedUser.ContactJobTitle, testViewModel.JobTitle, "Expected ContactJobTitle to match"); }
public async Task POST_ReturnsChangeDetailsViewWhenModelStateIsInValid() { // Arrange User verifiedUser = UserHelper.GetNotAdminUserWithVerifiedEmailAddress(); var controller = UiTestHelper.GetController <ModernSlavery.WebUI.Areas.Account.Controllers.ChangeDetailsController>( verifiedUser.UserId, mockRouteData, verifiedUser); var model = new ChangeDetailsViewModel(); // Act controller.ModelState.AddModelError("FirstName", "Required"); var viewResult = await controller.ChangeDetails(model) as ViewResult; // Assert Assert.NotNull(viewResult); Assert.AreEqual( nameof(ModernSlavery.WebUI.Areas.Account.Controllers.ChangeDetailsController.ChangeDetails), viewResult.ViewName); Assert.IsFalse(controller.TempData.ContainsKey(AccountResources.ChangeDetailsSuccessAlert)); Assert.IsInstanceOf(typeof(ChangeDetailsViewModel), viewResult.Model); }