/// <summary>
 /// 驳回方式改变
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ccRejectType_TextChanged(object sender, EventArgs e)
 {
     try
     {
         FormProcessActivityRejectType rejectType = (FormProcessActivityRejectType)this.ccRejectType.SelectedValue.ToInt();
         if (rejectType != FormProcessActivityRejectType.SelectActivity)
         {
             this.divRejectTargetActivity.Visible = false;
         }
         else
         {
             this.divRejectTargetActivity.Visible = true;
         }
     }
     catch (Exception ex)
     {
         this.AjaxAlert(ex);
     }
 }
        /// <summary>
        /// 保存当前活动配置
        /// </summary>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                //所有活动
                Dictionary <long, SysActivity> activityDict = this.DataHelper.Set <SysActivity>()
                                                              .Where(p => p.ProcessId == this.ProcessId).ToDictionary(p => p.ActivityId);

                //当前活动
                SysActivity a = activityDict[this.SelectedActivityId];

                using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
                {
                    using (BizDataContext db = new BizDataContext())
                    {
                        a.ActivityName = this.txtActivityName.Text.Trim();
                        db.UpdatePartial(a, p => new { p.ActivityName });

                        #region 处理驳回方式
                        //找到当前活动驳回指向的连接线
                        SysTransition t = this.DataHelper.Set <SysTransition>()
                                          .Where(p => p.PreActivityId == this.SelectedActivityId && p.Direction == (int)FlowStepDirection.False).FirstOrDefault();
                        FormProcessActivityRejectType rejectType = (FormProcessActivityRejectType)this.ccRejectType.SelectedValue.ToInt();
                        switch (rejectType)
                        {
                        case FormProcessActivityRejectType.SelectActivityWhenRunning:
                        {
                            if (t != null)
                            {
                                db.Delete(t);
                            }
                            break;
                        }

                        case FormProcessActivityRejectType.SelectActivity:
                        {
                            SysActivity target = activityDict[this.ccRejectTargetActivity.SelectedValue.ToLong()];
                            if (t == null)
                            {
                                ConnectActivity(db, a, target, FlowStepDirection.False);
                            }
                            else if (t.PostActivityId != target.ActivityId)
                            {
                                t.PostActivityId = target.ActivityId;
                                db.UpdatePartial(t, p => new { p.PostActivityId });
                            }
                            break;
                        }

                        case FormProcessActivityRejectType.EndActivity:
                        {
                            SysActivity end = activityDict.Values.FirstOrDefault(p => p.ActivityType == (int)ActivityType.End && p.ActivityName == "驳回");
                            if (t == null)
                            {
                                ConnectActivity(db, a, end, FlowStepDirection.False);
                            }
                            else if (t.PostActivityId != end.ActivityId)
                            {
                                t.PostActivityId = end.ActivityId;
                                db.UpdatePartial(t, p => new { p.PostActivityId });
                            }
                            break;
                        }

                        default: break;
                        }
                        #endregion
                    }
                    ts.Complete();
                }

                //重新选择一下
                SelectActivity(a);

                this.AjaxAlertAndEnableButton("保存成功");
            }
            catch (Exception ex)
            {
                this.AjaxAlertAndEnableButton(ex);
            }
        }