コード例 #1
0
        public ActionResult SavePermission(string data, string FunctionId)
        {
            var           model          = new JavaScriptSerializer().Deserialize <List <SavePermission> >(data);
            PermissionDao _permissiondao = new PermissionDao();

            _permissiondao.DeleteAll(FunctionId);
            Permission permission = null;

            try
            {
                foreach (var item in model)
                {
                    permission            = new Permission();
                    permission.RoleId     = item.RoleId;
                    permission.FunctionId = FunctionId;
                    permission.CanCreate  = Boolean.Parse(item.CanCreate);
                    permission.CanDelete  = Boolean.Parse(item.CanDelete);
                    permission.CanRead    = Boolean.Parse(item.CanRead);
                    permission.CanUpdate  = Boolean.Parse(item.CanUpdate);
                    _permissiondao.Save(permission);
                }
                var functions = new FunctionDao().GetAllWithParent(FunctionId);
                if (functions.Any())
                {
                    foreach (var item in functions)
                    {
                        _permissiondao.DeleteAll(item.Id);
                        foreach (var p in model)
                        {
                            var childPermission = new Permission();
                            childPermission.FunctionId = item.Id;
                            childPermission.RoleId     = p.RoleId;
                            childPermission.CanCreate  = Boolean.Parse(p.CanCreate);
                            childPermission.CanDelete  = Boolean.Parse(p.CanDelete);
                            childPermission.CanRead    = Boolean.Parse(p.CanRead);
                            childPermission.CanUpdate  = Boolean.Parse(p.CanUpdate);
                            _permissiondao.Save(childPermission);
                        }
                    }
                }
                return(Json(new { status = true }, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(new { status = false }, JsonRequestBehavior.AllowGet));
            }
        }