public ActionResult SaveAdminPrivilege(SelectEntityRolesViewModel model)
        {
            PermissionContext db = new PermissionContext(LogggedInUser);

            if (!((CustomPrincipal)User).IsAdmin)
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (ModelState.IsValid)
            {
                foreach (var ent in model.privileges)
                {
                    var list = db.AdminPrivileges.FirstOrDefault(q => q.RoleName == model.RoleName && ent.AdminFeature == q.AdminFeature);
                    PermissionAdminPrivilege permission = (list != null ? list : new PermissionAdminPrivilege());
                    permission.IsAllow      = ent.IsAllow;
                    permission.IsEdit       = ent.IsEdit;
                    permission.IsAdd        = ent.IsAdd;
                    permission.IsDelete     = ent.IsDelete;
                    permission.AdminFeature = ent.AdminFeature;
                    permission.RoleName     = ent.RoleName;
                    if (list == null)
                    {
                        db.AdminPrivileges.Add(permission);
                    }
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("Index", new { RoleName = model.RoleName }));
            // return Json("FROMPAGE", "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
        }
        // GET: /Permission/
        public ActionResult Index(string RoleName)
        {
            if (!((CustomPrincipal)User).CanViewAdminFeature("RoleEntityPermission"))
            {
                return(RedirectToAction("Index", "Home"));
            }
            var Db    = new ApplicationDbContext();
            var roles = Db.Roles;
            var model = new SelectEntityRolesViewModel(RoleName);

            //var adminfeaturelist = new List<PermissionAdminPrivilege>();
            //foreach (var item in Enum.GetValues(typeof(AdminFeatures)))
            //{
            //    var obj = new PermissionAdminPrivilege();
            //    obj.RoleName = RoleName;
            //    obj.IsAllow = false;
            //    obj.AdminFeature = item.ToString();
            //    adminfeaturelist.Add(obj);
            //}

            //model.privileges = adminfeaturelist;
            return(View(model));

            //return View(db.Permissions.ToList());
        }
        public ActionResult SavePermission(SelectEntityRolesViewModel model)
        {
            PermissionContext db = new PermissionContext(LogggedInUser);

            if (!((CustomPrincipal)User).CanEditAdminFeature("RoleEntityPermission"))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (ModelState.IsValid)
            {
                //var idManager = new IdentityManager();


                foreach (var ent in model.Entities)
                {
                    var list = db.Permissions.FirstOrDefault(q => q.RoleName == model.RoleName && ent.EntityName == q.EntityName);
                    //db.Permissions.RemoveRange(list);
                    Permission permission = (list != null ? list : new Permission());
                    permission.CanAdd           = ent.CanAdd;
                    permission.CanDelete        = ent.CanDelete;
                    permission.CanView          = ent.CanView;
                    permission.CanEdit          = ent.CanEdit;
                    permission.IsOwner          = ent.IsOwner;
                    permission.SelfRegistration = ent.SelfRegistration;
                    permission.UserAssociation  = ent.UserAssociation;
                    permission.EntityName       = ent.EntityName;
                    permission.RoleName         = model.RoleName;
                    //code for verb action security
                    permission.Verbs = ent.Verbs;
                    //
                    if (list == null)
                    {
                        db.Permissions.Add(permission);
                    }
                    db.SaveChanges();
                }
                return(Json("FROMPAGE", "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet));
                //return RedirectToAction("Index", "Admin");
            }
            return(View());
        }