//
        // GET: /Roles/Edit/Admin
        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();
            }
            RoleViewModel roleModel = new RoleViewModel { Id = role.Id, Name = role.Name, Description = role.Description };

            var rolPers = await PermissionManager.GetPermissionsAsync(id);
            var pers = PermissionManager.Permissions.OrderBy(x=>x.ControllerKey).ToList();
            roleModel.PerrmissionList = pers.Select(x => new SelectListItem()
                {
                    Selected = rolPers.Contains(x),
                    Text = x.Description,
                    Value = x.Id
                });
            var ctrs = ControllerPermissions;
            foreach (var c in ctrs)
            {
                var perCtr = pers.Where(x=>x.ControllerKey == c.Key).Select(x=>x.Id).ToList();
                roleModel.GroupPerrmissionList.Add(c.Value, roleModel.PerrmissionList.Where(x=>perCtr.Contains(x.Value)));
            }

            var perCtr1 = pers.Where(x =>!ctrs.Keys.Contains(x.ControllerKey)).Select(x => x.Id).ToList();
            roleModel.GroupPerrmissionList.Add("Các chức năng khác", roleModel.PerrmissionList.Where(x => perCtr1.Contains(x.Value)));

            return View(roleModel);
        }
        public async Task<ActionResult> Create(RoleViewModel roleViewModel)
        {
            if (ModelState.IsValid)
            {
                var role = new ApplicationRole(roleViewModel.Name);
                // Save the new Description property:
                role.Description = roleViewModel.Description;

                var roleresult = await RoleManager.CreateAsync(role);
                if (!roleresult.Succeeded)
                {
                    ModelState.AddModelError("", roleresult.Errors.First());
                    return View();
                }
                return RedirectToAction("Index");
            }
            return View();
        }