public JsonResult Load(string WorkflowCode, string AclId)
        {
            return(ExecuteFunctionRun(() => {
                OThinker.H3.Acl.WorkflowAcl CurrentAcl = null;
                if (!string.IsNullOrEmpty(AclId))
                {
                    CurrentAcl = this.Engine.WorkflowAclManager.GetWorkflowAcl(AclId);
                }

                var WorflowName = this.Engine.WorkflowManager.GetClauseDisplayName(WorkflowCode);
                var UserAlias = string.Empty;
                var CreateInstance = false;

                //按钮显示 ,前台判断
                if (CurrentAcl != null)
                {
                    // 编辑模式
                    OThinker.Organization.Unit u = this.Engine.Organization.GetUnit(CurrentAcl.UserID);
                    if (u is OThinker.Organization.User)
                    {
                        UserAlias = this.Engine.Organization.GetFullName(u.ParentID) + "/" + u.Name;
                    }
                    else
                    {
                        UserAlias = this.Engine.Organization.GetFullName(CurrentAcl.UserID);
                    }


                    CreateInstance = CurrentAcl.CreateInstance;
                }

                //BizWorkflowPackageLockByID(WorkflowCode);
                var obj = new { WorkflowName = WorflowName, UserAlias = UserAlias, CreateInstance = CreateInstance };

                return Json(obj, JsonRequestBehavior.AllowGet);
            }));
        }
        public JsonResult Save(string AclId, string WorkflowCode, string SelectUsers, bool CreateInstance)
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult(false, "");
                OThinker.H3.Acl.WorkflowAcl CurrentAcl = null;
                if (!string.IsNullOrEmpty(AclId))
                {
                    CurrentAcl = this.Engine.WorkflowAclManager.GetWorkflowAcl(AclId);
                }

                if (CurrentAcl == null)
                {
                    // 添加模式
                    string[] users = (string[])JsonConvert.DeserializeObject(SelectUsers, typeof(string[]));
                    // 检查选中的用户
                    if (users == null || users.Length == 0)
                    {
                        result.Message = "WorkflowSetting.UpdateWorkflowAcl_NoSetUnit";
                        return Json(result, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        // 检查是否已经存在
                        foreach (string user in users)
                        {
                            // 查询权限表
                            System.Data.DataTable table = this.Engine.WorkflowAclManager.QueryDataTable(new string[] { user }, WorkflowCode);
                            if (table != null && table.Rows.Count != 0)
                            {
                                string userFullName = this.Engine.Organization.GetFullName(user);
                                result.Message = "WorkflowSetting.UpdateWorkflowAcl_Duplicated";
                                result.Extend = userFullName;
                                return Json(result, JsonRequestBehavior.AllowGet);
                            }
                        }
                    }

                    foreach (string user in users)
                    {
                        OThinker.H3.Acl.WorkflowAcl acl = new OThinker.H3.Acl.WorkflowAcl();
                        acl.UserID = user;
                        acl.WorkflowCode = WorkflowCode;

                        acl.CreateInstance = CreateInstance;

                        acl.CreatedBy = this.UserValidator.UserID;
                        acl.CreatedTime = System.DateTime.Now;

                        this.Engine.WorkflowAclManager.Add(acl);
                    }
                }
                else
                {
                    CurrentAcl.CreateInstance = CreateInstance;
                    CurrentAcl.ModifiedTime = System.DateTime.Now;
                    CurrentAcl.ModifiedBy = this.UserValidator.UserID;
                    this.Engine.WorkflowAclManager.Update(new OThinker.H3.Acl.WorkflowAcl[] { CurrentAcl });
                }

                result.Success = true;
                result.Message = "msgGlobalString.SaveSucced";
                return Json(result, JsonRequestBehavior.AllowGet);
            }));
        }