public ActionResult Update(UserAdminUpdate value) { if (value == null) { throw new ArgumentNullException("value"); } var user = this.UserService.GetById(value.Id); if (user == null) { return HttpNotFound(); } var privilege = new UserPrivilege(); if (!privilege.CanUpdateAny(user)) { return NotAuthorized(); } value.Validate(); if (value.IsValid) { // value to user value.ValueToModel(user); // update user this.UserService.Update(user); // update password if needed if (!string.IsNullOrEmpty(value.Password)) { this.AuthenticationService.Update(user, value.Password); } // preference var preference = user.Preference; // value to preference value.ValueToPreference(preference); // update user preference this.UserService.UpdatePreference(preference); value.SuccessMessage(Messages.UserUpdated.FormatInvariant(user.Name)); } else { value.CopyToModel(ModelState); } return base.View(Views.Update, value); }
public void Test_UserAdminUpdate_ValueToModel() { var value = new UserAdminUpdate { Name = "test", Title = "test2", EmailAddress = "*****@*****.**", Signature = "test3", IsProtected = true, Status = UserStatus.Activated }; var user = new User(); value.ValueToModel(user); Assert.AreEqual("test", user.Name, "Name"); Assert.AreEqual("test2", user.Title, "Title"); Assert.AreEqual("*****@*****.**", user.EmailAddress, "EmailAddress"); Assert.AreEqual("test3", user.Signature, "Signature"); Assert.IsTrue(user.IsProtected, "IsProtected"); Assert.AreEqual(UserStatus.Activated, user.Status, "Status"); }