Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void Test_UserAdminUpdate_ValueToPreference()
        {
            var value = new UserAdminUpdate
            {
                CountryId = 1,
                TimeZoneId = 1,
                Dst = UserPreferenceDaylightSavingTime.Auto,
                StartOfWeek = UserPreferenceStartOfWeek.Monday,
                TimeFormat = UserPreferenceTimeFormat.Basic
            };

            var preference = new UserPreference();

            value.ValueToPreference(preference);

            Assert.AreEqual(UserPreferenceDaylightSavingTime.Auto, preference.Dst, "Dst");
            Assert.AreEqual(UserPreferenceStartOfWeek.Monday, preference.StartOfWeek, "StartOfWeek");
            Assert.AreEqual(UserPreferenceTimeFormat.Basic, preference.TimeFormat, "TimeFormat");
        }