Exemple #1
0
        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"));
        }
Exemple #3
0
 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));
        }
Exemple #8
0
        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);
        }