Esempio n. 1
0
        public JsonResult EditUserProfile(string spaceKey, UserProfileEditModel model)
        {
            string errorMessage = null;
            if (ModelState.HasBannedWord(out errorMessage))
            {
                return Json(new StatusMessageData(StatusMessageType.Error, errorMessage));
            }

            User oldUser = userService.GetFullUser(spaceKey);
            string oldemail = oldUser.AccountEmail;

            UserProfile userProfile = model.AsUserProfile(oldUser.UserId);
            if (userProfileService.Get(oldUser.UserId) != null)
                userProfileService.Update(userProfile);
            else
                userProfileService.Create(userProfile);

            string nickName = oldUser.NickName;
            User user = model.AsUser(oldUser.UserId);

            if (oldemail.Equals(model.AccountEmail) || Utility.ValidateEmail(model.AccountEmail, out errorMessage))
            {
                user.AccountEmail = model.AccountEmail;

                if (oldemail != model.AccountEmail)
                    user.IsEmailVerified = false;

                IMembershipService iMembershipService = DIContainer.Resolve<IMembershipService>();

                //更新用户名
                if (!string.IsNullOrEmpty(model.UserName))
                    user.UserName = model.UserName;

                iMembershipService.UpdateUser(user);

                //当修改用户名时清除dictionary的缓存
                UserIdToUserNameDictionary.RemoveUserId(user.UserId);
                UserIdToUserNameDictionary.RemoveUserName(user.UserName);
                UserIdToNickNameDictionary.RemoveUserId(user.UserId);
                UserIdToNickNameDictionary.RemoveUserName(nickName);

            }

            #region 处理隐私设置
            Dictionary<string, IEnumerable<UserPrivacySpecifyObject>> userPrivacySpecifyObject = new Dictionary<string, IEnumerable<UserPrivacySpecifyObject>>();
            if (model.PrivacyBirthday == PrivacyStatus.Part)
                userPrivacySpecifyObject.Add(PrivacyItemKeys.Instance().Birthday(), new List<UserPrivacySpecifyObject> { GetUserPrivacySpecifyObject_AllGroup() });
            if (model.PrivacyEmail == PrivacyStatus.Part)
                userPrivacySpecifyObject.Add(PrivacyItemKeys.Instance().Email(), new List<UserPrivacySpecifyObject> { GetUserPrivacySpecifyObject_AllGroup() });
            if (model.PrivacyMobile == PrivacyStatus.Part)
                userPrivacySpecifyObject.Add(PrivacyItemKeys.Instance().Mobile(), new List<UserPrivacySpecifyObject> { GetUserPrivacySpecifyObject_AllGroup() });
            if (model.PrivacyMSN == PrivacyStatus.Part)
                userPrivacySpecifyObject.Add(PrivacyItemKeys.Instance().Msn(), new List<UserPrivacySpecifyObject> { GetUserPrivacySpecifyObject_AllGroup() });
            if (model.PrivacyQQ == PrivacyStatus.Part)
                userPrivacySpecifyObject.Add(PrivacyItemKeys.Instance().QQ(), new List<UserPrivacySpecifyObject> { GetUserPrivacySpecifyObject_AllGroup() });

            Dictionary<string, PrivacyStatus> userSettings = new Dictionary<string, PrivacyStatus>();
            userSettings.Add(PrivacyItemKeys.Instance().Birthday(), model.PrivacyBirthday);
            userSettings.Add(PrivacyItemKeys.Instance().Email(), model.PrivacyEmail);
            userSettings.Add(PrivacyItemKeys.Instance().Mobile(), model.PrivacyMobile);
            userSettings.Add(PrivacyItemKeys.Instance().Msn(), model.PrivacyMSN);
            userSettings.Add(PrivacyItemKeys.Instance().QQ(), model.PrivacyQQ);

            privacyService.UpdateUserPrivacySettings(user.UserId, userSettings, userPrivacySpecifyObject);
            #endregion

            if (!string.IsNullOrEmpty(errorMessage))
                return Json(new StatusMessageData(StatusMessageType.Error, "更新邮件失败"));

            return Json(new StatusMessageData(StatusMessageType.Success, "更新用户成功"));
        }
Esempio n. 2
0
        public ActionResult EditUserProfile(string spaceKey)
        {
            User user = userService.GetFullUser(spaceKey);
            if (user == null)
                return HttpNotFound();

            pageResourceManager.InsertTitlePart("基本资料");

            UserProfile profile = userProfileService.Get(user.UserId);
            UserProfileEditModel editModel = new UserProfileEditModel(profile, user);

            int minYear = 1919;
            int i = DateTime.Now.Year - minYear;
            IList<SelectListItem> years = new List<SelectListItem>();

            while (i >= 0)
            {
                DateTime dt = DateTime.Now.AddYears(-i);
                years.Add(new SelectListItem() { Text = string.Format("{0}年({1})", ChineseCalendarHelper.GetStemBranch(dt), dt.Year), Value = dt.Year.ToString() });
                i--;
            }

            ViewData["Year"] = years;
            ViewData["minYear"] = minYear;

            ViewData["UserName"] = user.UserName;
            //ViewData["statusMessageData"] = TempData["MessageData"];
            #region 隐私设置

            List<SelectListItem> selectListItems = new List<SelectListItem>
            {
                new SelectListItem{ Text = "所有人可见", Value = PrivacyStatus.Public.ToString()},
                new SelectListItem{ Text = "我关注的人可见", Value = PrivacyStatus.Part.ToString()},
                new SelectListItem{ Text = "仅自己可见", Value = PrivacyStatus.Private.ToString()}
            };

            Dictionary<string, PrivacyStatus> userPrivacyItems = GetUserPrivacySetting(user.UserId);

            ViewData["PrivacyEmail"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().Email()]);
            ViewData["PrivacyMobile"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().Mobile()]);
            ViewData["PrivacyBirthday"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().Birthday()]);
            ViewData["PrivacyQQ"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().QQ()]);
            ViewData["PrivacyMSN"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().Msn()]);
            ViewData["PrivacyTrueName"] = new SelectList(selectListItems, "Value", "Text", userPrivacyItems[PrivacyItemKeys.Instance().TrueName()]);

            #endregion

            return View(editModel);
        }