protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string processDefID = Request.QueryString["ProcessDefID"];
                string srcActivity = Request.QueryString["SrcActivity"];
                string destActivity = Request.QueryString["DestActivity"];
                try
                {
                    WorkflowEngine engine = new WorkflowEngine();
                    ProcessDefine processDefine = engine.GetProcessDefine(processDefID);

                    AgileEAP.Workflow.Definition.Transition transition = processDefine.Transitions.FirstOrDefault(t => t.SrcActivity == srcActivity && t.DestActivity == destActivity);

                    bool isDefault = string.IsNullOrEmpty(transition.Name) && string.IsNullOrEmpty(transition.Expression);
                    txtExpression.Text = transition.Expression;
                    txtName.Text = isDefault ? "默认连接" : transition.Name;
                    chkIsDefault.Checked = isDefault ? true : transition.IsDefault;
                }
                catch (Exception ex)
                {
                    log.Error(string.Format("显示流程{0}迁移srcActivity={1},destActivity={2}信息出错", processDefID, srcActivity, destActivity), ex);
                }
            }
        }
        public void FormJsonTest()
        {
            IWorkflowEngine engine = new WorkflowEngine();

            var processDefID = "06528f7e-5a95-49ce-8e04-7fe4890569a0";
            ProcessDefine processDefine = engine.GetProcessDefine(processDefID);

            string json = AgileEAP.Core.JsonConvert.SerializeObject(processDefine, new Newtonsoft.Json.Converters.StringEnumConverter { CamelCaseText = false });
            ProcessDefine processDefine2 = AgileEAP.Core.JsonConvert.DeserializeObject<ProcessDefine>(json, new ActivityConvert());

            Assert.IsNotNull(true);
        }
        public string Save(string json)
        {
            AjaxResult ajaxResult = new AjaxResult();

            string errorMsg = string.Empty;
            DoResult actionResult = DoResult.Failed;
            string actionMessage = string.Empty;
            string processDefID = Request.QueryString["ProcessDefID"];
            string srcActivity = Request.QueryString["SrcActivity"];
            string destActivity = Request.QueryString["DestActivity"];
            try
            {
                WorkflowEngine engine = new WorkflowEngine();
                ProcessDefine processDefine = engine.GetProcessDefine(processDefID);
                ProcessDef processDef = repository.GetDomain<ProcessDef>(processDefID);

                AgileEAP.Workflow.Definition.Transition transition = processDefine.Transitions.FirstOrDefault(t => t.SrcActivity == srcActivity && t.DestActivity == destActivity);
                IDictionary<string, object> values = JsonConvert.DeserializeObject<IDictionary<string, object>>(json);

                transition.IsDefault = values.GetSafeValue<bool>("IsDefault", false);
                transition.Name = values.GetSafeValue<string>("Name", transition.Name);
                transition.Expression = values.GetSafeValue<string>("Expression", transition.Expression);
                processDef.Content = processDefine.ToXml();

                repository.SaveOrUpdate(processDef);

                actionResult = DoResult.Success;
                //获取提示信息
                actionMessage = RemarkAttribute.GetEnumRemark(actionResult);

                //记录操作日志
                AddActionLog(processDef, actionResult, string.Format("保存流程{0}迁移srcActivity={1},destActivity={2}信息", processDefID, srcActivity, destActivity));

                ajaxResult.Result = actionResult;
                ajaxResult.RetValue = srcActivity + ":" + destActivity;
                ajaxResult.PromptMsg = actionMessage;
            }
            catch (Exception ex)
            {
                ajaxResult.Result = DoResult.Failed;
                AddActionLog<ProcessDef>(string.Format("保存流程{0}迁移srcActivity={1},destActivity={2}信息", processDefID, srcActivity, destActivity), ajaxResult.Result);
                log.Error(string.Format("显示流程{0}迁移srcActivity={1},destActivity={2}信息出错", processDefID, srcActivity, destActivity), ex);
            }

            return JsonConvert.SerializeObject(ajaxResult);
        }
        /// <summary>
        /// 显示列表信息
        /// </summary>
        /// <param name="gvList">GridView对象</param>
        /// <param name="pageInfo">分页信息</param>
        public void ShowList(PagedGridView gvList, PageInfo pageInfo)
        {
            WorkflowEngine wfEngine = new WorkflowEngine();
            IList<Activity> result = wfEngine.GetProcessDefine(ProcessDefID).Activities.OrderBy(a => a.ActivityType).ToList();

            gvList.ItemCount = result.Count;
            gvList.DataSource = result;
            gvList.DataBind();
        }