public async Task <ActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var role = await RoleManager.FindByIdAsync(id);

            if (role == null)
            {
                return(HttpNotFound());
            }
            var roleid = _dbContext.RoleActions.Where(a => a.RoleId == id).Select(a => a.Action.Name).ToList();
            var model  = new EditRoleActionViewModel()
            {
                Id              = role.Id,
                NameRole        = role.Name,
                ActionRolesList = _dbContext.Actions.ToList().Select(x => new SelectListItem()
                {
                    Selected = roleid.Contains(x.Name),
                    Text     = x.Name,
                    Value    = x.Name
                })
            };

            return(View(model));
        }
        public ActionResult Edit(EditRoleActionViewModel editUser, params string[] selectedRole)
        {
            var roleaction = _dbContext.RoleActions.Where(a => a.RoleId == editUser.Id).ToList();

            for (int i = 0; i < roleaction.Count(); i++)
            {
                _dbContext.RoleActions.Remove(roleaction[i]);
                _dbContext.SaveChanges();
            }

            if (ModelState.IsValid)
            {
                selectedRole = selectedRole ?? new string[] { };
                for (int i = 0; i < selectedRole.Length; i++)
                {
                    var temp_role = selectedRole[i];
                    var action    = _dbContext.Actions.Where(a => a.Name == temp_role).Select(a => a.Id).Single();
                    var role      = new RoleAction()
                    {
                        ActionId = action,
                        RoleId   = editUser.Id
                    };
                    _dbContext.RoleActions.Add(role);
                    _dbContext.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            ModelState.AddModelError("", "Something failed.");
            return(View());
        }