예제 #1
0
        public void Test_UserPreferenceUpdate_ValueToModel()
        {
            var value = new UserPreferenceUpdate
            {
                Dst = UserPreferenceDaylightSavingTime.Auto,
                StartOfWeek = UserPreferenceStartOfWeek.Monday,
                TimeFormat = UserPreferenceTimeFormat.Basic
            };

            value.Initialize();

            var preference = new UserPreference();

            value.ValueToModel(preference);

            Assert.AreEqual(UserPreferenceDaylightSavingTime.Auto, preference.Dst, "Dst");
            Assert.AreEqual(UserPreferenceStartOfWeek.Monday, preference.StartOfWeek, "StartOfWeek");
            Assert.AreEqual(UserPreferenceTimeFormat.Basic, preference.TimeFormat, "TimeFormat");
        }
예제 #2
0
        public ActionResult Update(UserPreferenceUpdate value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            var user = this.UserService.GetById(Identity.Id);

            if (user == null)
            {
                return base.HttpNotFound();
            }

            var privilege = new UserPrivilege();

            if (!privilege.CanUpdate(user))
            {
                return NotAuthorized();
            }

            value.Initialize();
            value.Validate();

            if (value.IsValid)
            {
                value.ValueToModel(user.Preference);

                this.UserService.UpdatePreference(user.Preference);

                value.SuccessMessage(Messages.UserAccountPreferenceUpdated);
            }
            else
            {
                value.CopyToModel(ModelState);
            }

            return base.View(Views.Update, value);
        }