Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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 } });
                    }
                }
            }
        }
Ejemplo n.º 3
0
 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);
 }