Exemplo n.º 1
0
        public ActionResult Edit(UserViewModel user, int[] selectedRoles)
        {
            var allRoles = roleService.GetAll().Select(item => item.ToMvcRoleModel());
            var roles = new List<RoleViewModel>();

            if (selectedRoles != null)
            {
                user.RoleNames = new List<string>();

                foreach (var r in allRoles.Where(role => selectedRoles.Contains(role.Id)))
                {
                    user.RoleNames.Add(r.Name);
                    roles.Add(r);
                }
            }

            try
            {
                userService.Update(user.ToBllUser(roles));
            }
            catch (ArgumentNullException e)
            {
                return RedirectToAction("Index", "Error", new { id = "Параметр " + e.Message + " NULL" });
            }
            catch (ArgumentException e)
            {
                return RedirectToAction("Index", "Error", new { id = e.Message });
            }
            catch
            {
                return RedirectToAction("Index", "Error", new { id = "Ошибка при сохранении файла в БД" });
            }

            return RedirectToAction("Index");
        }
Exemplo n.º 2
0
        private void UpdateUserRoles(UserViewModel user, string[] selectedRoles)
        {
            if (selectedRoles == null)
            {
                user.Roles = new List<RoleViewModel>();
                return;
            }

            var selectedRolesHS = new HashSet<string>(selectedRoles);
            var userRoles = new HashSet<int>
                (user.Roles.Select(x => x.Id));
            foreach (var role in _userService.GetAllRoles())
            {
                if (selectedRolesHS.Contains(role.Id.ToString()))
                {
                    if (!userRoles.Contains(role.Id))
                    {
                        user.Roles.Add(role.ToRoleViewModel());
                    }
                }
                else
                {
                    if (userRoles.Contains(role.Id))
                    {
                        user.Roles.Remove(role.ToRoleViewModel());
                    }
                }
            }
        }
Exemplo n.º 3
0
        public ActionResult Edit(UserViewModel user, string[] selectedRoles)
        {

            UpdateUserRoles(user, selectedRoles);
            _userService.UpdateUser(user.ToBllUser());
            if (!((ClaimsIdentity)User.Identity).Claims
                    .Any(x => x.Type == ClaimTypes.Role &&
                    x.Value == "Admin"))
            {
                _signService.IdentitySignout();
                _signService.IdentitySignin(user.ToBllUser());
            }
            return RedirectToAction("Index", "Home",null);
        }