/// <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); } }