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, "更新用户成功")); }
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); }