public ActionResult EditUser(int id) { var roles = Roles.GetAllRoles().Select(x => new KeyValuePair<string, string>(x, x)).ToList(); var user = id > 0 ? userService.GetUser(id) : new User(); var model = new UserViewModel { User = UserModel.FromDomainModel(user), Roles = roles, ParentUsers = id > 0 ? GetUsers(user.Role) : GetUsers(roles.First().Key), Regions = masterService.GetAllRegions().Select(x => new KeyValuePair<int, string>(x.Id, x.Name)) }; if (id > 0) { model.User.Password = "******"; model.User.ConfirmPassword = "******"; } return PartialView("EditUser", model); }
public void EditUser(UserViewModel model) { var flag = false; if (model.User.Role == "HQ" || model.User.Role == "HQR") { model.User.ParentId = 0; flag = true; } else { if (model.User.ParentId.HasValue && model.User.ParentId.Value > 0) { if (model.User.Role == "RM") { if (model.User.RegionId.HasValue && model.User.RegionId.Value > 0) { flag = true; } } else { flag = true; model.User.RegionId = 0; } } } if (flag) { var user = UserModel.ToDomainModel(model.User); if (user.Id > 0) { var oldUser = userService.GetUser(user.Id); if (Roles.RoleExists(oldUser.Role) && Roles.IsUserInRole(oldUser.Email, oldUser.Role)) { Roles.RemoveUserFromRole(oldUser.Email, oldUser.Role); } if (Roles.RoleExists(user.Role) && !Roles.IsUserInRole(user.Email, user.Role)) { Roles.AddUserToRole(user.Email, user.Role); } userService.UpdateUser(user); } else { var status = membershipService.CreateUser(model.User.Email, model.User.Password); if (Roles.RoleExists(user.Role) && !Roles.IsUserInRole(user.Email, user.Role)) { Roles.AddUserToRole(user.Email, user.Role); } switch (status) { case MembershipCreateStatus.Success: userService.AddUser(new[] { user }); break; case MembershipCreateStatus.DuplicateUserName: break; } } //Add region map for rm if (model.User.RegionId.HasValue && model.User.RegionId.Value > 0) { var maps = masterService.FindUserRegionMaps(x => x.UserId == user.Id); if (maps.Any()) { var regionMap = maps.First(); regionMap.RegionId = model.User.RegionId.Value; masterService.UpdateUserRegionMap(regionMap); } else { masterService.AddUserRegionMap(new[] { new UserRegionMap { Id = 0, RegionId = model.User.RegionId.Value, UserId = user.Id } }); } } } }
public ActionResult EditUser(int id) { var roles = Roles.GetAllRoles().Select(x => new KeyValuePair<string, string>(x, x)).ToList(); var index = roles.FindIndex(x => x.Key.Equals("hqr", StringComparison.OrdinalIgnoreCase)); roles.RemoveAll(x => x.Key.Equals("hqr", StringComparison.OrdinalIgnoreCase)); roles.Insert(index, new KeyValuePair<string, string>("HQR", "HQReadonly")); var user = id > 0 ? userService.GetUser(id) : new User(); var model = new UserViewModel { User = UserModel.FromDomainModel(user), Roles = roles, ParentUsers = id > 0 ? GetUsers(user.Role).OrderBy(x => x.Value).ToList() : GetUsers(roles.First().Key).OrderBy(x => x.Value).ToList(), Regions = masterService.GetAllRegions().Select(x => new KeyValuePair<int, string>(x.Id, x.Name)) }; if (id > 0) { model.User.Password = "******"; model.User.ConfirmPassword = "******"; } return PartialView("EditUser", model); }