public JsonResult GetBizObjectAclPageData(string schemaCode, string aclID)
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult();
                if (!this.ParseParam(schemaCode))
                {
                    result.Success = false;
                    result.Message = "EditBizObjectSchema.Msg0";
                    return Json(result, JsonRequestBehavior.AllowGet);
                }
                List <Item> orgScopes = InitOrgScopes();
                FunctionNode functionNode = this.UserValidator.GetFunctionNode(schemaCode, false);
                string schemaName = functionNode != null ? functionNode.DisplayName : string.Empty;
                if (string.IsNullOrEmpty(aclID))//新增
                {
                    result.Extend = new
                    {
                        OrgScopeTypes = orgScopes,
                        BizObjectAcl = new BizObjectAclViewModel()
                        {
                            SchemaCode = schemaCode,
                            OrgScopeType = "0",
                            SchemaName = schemaName,
                            IsView = true,
                            IsAdmin = true,
                            IsCreate = true
                        }
                    };
                    result.Success = true;
                }

                else//编辑
                {
                    BizObjectAclViewModel model = new BizObjectAclViewModel();
                    BizObjectAcl acl = this.Engine.BizObjectManager.GetBizObjectAcl(schemaCode, null, aclID);
                    if (null != acl)
                    {
                        model = new BizObjectAclViewModel()
                        {
                            ObjectID = acl.ObjectID,
                            IsAdmin = acl.Administrator,
                            OrgScope = acl.OrgScope,
                            OrgScopeType = ((int)acl.OrgScopeType).ToString(),
                            UserID = acl.UserID,
                            IsView = acl.ViewData,
                            FolderId = acl.FolderId,
                            IsCreate = acl.CreateBizObject,
                            SchemaCode = acl.SchemaCode,
                            SchemaName = schemaName
                        };
                    }
                    result.Extend = new
                    {
                        OrgScopeTypes = orgScopes,
                        BizObjectAcl = model
                    };
                    result.Success = true;
                }

                return Json(result, JsonRequestBehavior.AllowGet);
            }));
        }
        public JsonResult SaveBizObjectAcl(BizObjectAclViewModel model)
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult();
                result.Success = true;
                BizObjectAcl acl = null;
                List <string> errors = new List <string>();//错误信息数组
                if (string.IsNullOrEmpty(model.UserID))
                {
                    result.Success = false;
                    result.Message = "BizObjectAcl.NameRequired";
                    return Json(result, JsonRequestBehavior.AllowGet);
                }
                if (string.IsNullOrEmpty(model.ObjectID))//新增
                {
                    string[] UserIDarray = model.UserID.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    if (model.OrgScopeType == ((int)OrgScopeType.Specific).ToString())
                    {
                        string[] scopes = model.OrgScopeArr;
                        if (scopes == null || scopes.Length == 0 || scopes.All(s => s == ""))
                        {
                            result.Success = false;
                            result.Message = "BizObjectAcl.Msg6";
                        }
                        else
                        {
                            for (int i = 0; i < UserIDarray.Length; i++)
                            {
                                foreach (string scope in scopes)
                                {
                                    acl = new BizObjectAcl();
                                    acl.SchemaCode = model.SchemaCode;
                                    acl.UserID = UserIDarray[i];
                                    acl.OrgScope = scope;
                                    acl.OrgScopeType = OrgScopeType.Specific;
                                    acl.CreateBizObject = model.IsCreate;
                                    acl.ViewData = model.IsView;
                                    acl.Administrator = model.IsAdmin;
                                    if (!this.Engine.BizObjectManager.AddBizObjectAcl(acl))
                                    {
                                        //result.Success = false;
                                        //result.Message = "BizObjectAcl.AddFailed";
                                        //errors.Add(this.Engine.Organization.GetFullName(scope));
                                    }
                                }
                            }
                            //result.Extend = errors;
                        }
                    }
                    else
                    {
                        for (int i = 0; i < UserIDarray.Length; i++)
                        {
                            acl = new BizObjectAcl();
                            acl.SchemaCode = model.SchemaCode;
                            acl.UserID = UserIDarray[i];
                            acl.OrgScopeType = model.OrgScopeType == "1" ? OrgScopeType.Self : OrgScopeType.All;
                            acl.CreateBizObject = model.IsCreate;
                            acl.ViewData = model.IsView;
                            acl.Administrator = model.IsAdmin;

                            if (!this.Engine.BizObjectManager.AddBizObjectAcl(acl))
                            {
                                //result.Success = false;
                                //result.Message = "BizObjectAcl.AddFailed";
                                //errors.Add("BizObjectAcl.OrgScopes." + acl.OrgScopeType.ToString());
                                //result.Extend = errors;
                            }
                        }
                    }
                }
                else
                {
                    acl = this.Engine.BizObjectManager.GetBizObjectAcl(model.SchemaCode, null, model.ObjectID);
                    acl.CreateBizObject = model.IsCreate;
                    acl.ViewData = model.IsView;
                    acl.Administrator = model.IsAdmin;
                    if (!this.Engine.BizObjectManager.UpdateBizObjectAcl(acl))
                    {
                        result.Success = false;
                        result.Message = "msgGlobalString.UpdateFailed";
                    }
                }
                return Json(result, JsonRequestBehavior.AllowGet);
            }));
        }