/// <summary> /// 将当前任务更新到数据库CURR_Misson /// </summary> /// <param name="clearFlag"></param> protected void UpdateCurrentEvent(bool clearFlag = false) { CURR_Mission cur_mis = new CURR_Mission(); cur_mis.After_Action = afteraction; cur_mis.Before_Action = beforeaction; cur_mis.Current_Action = currentaction; cur_mis.Miss_Desc = description; cur_mis.Miss_Name = name; //将内部变量的值预填充到权限认证字符串 Dictionary<string, object> inter_params = new Dictionary<string, object>(); foreach (var pa in m_params) inter_params[pa.Key] = pa.Value.value; cur_mis.Str_Authority = m_authority.FillParams(inter_params, null); try { WorkFlows wfs = new WorkFlows(); if (clearFlag == true) wfs.UpdateCurrentMission(m_parentWF.EntityID, null); else wfs.UpdateCurrentMission(m_parentWF.EntityID, cur_mis); } catch(Exception e) { Trace.WriteLine("UpdateCurrentEvent error:" + e.Message); } }
//2016/5/17--chenbin /// <summary> /// 更新工作流实体的当前任务 /// </summary> /// <param name="wfEntity_ID">工作流实体ID</param> /// <returns></returns> public bool UpdateCurrentMission(int wfEntity_ID, CURR_Mission cMiss) { try { using (var db = base.NewDB()) { var wfe = db.workflow_entities.Where(s => s.WE_Id == wfEntity_ID).First(); //没有当前任务 if (wfe.Curr_Mission.Count == 0) wfe.Curr_Mission.Add(cMiss); else { CURR_Mission cur_miss = wfe.Curr_Mission.First(); if (cMiss != null) { cur_miss.After_Action = cMiss.After_Action; cur_miss.Before_Action = cMiss.Before_Action; cur_miss.Current_Action = cMiss.Current_Action; cur_miss.Miss_Desc = cMiss.Miss_Desc; cur_miss.Miss_Name = cMiss.Miss_Name; cur_miss.Str_Authority = cMiss.Str_Authority; } else { db.current_mission.Remove(cur_miss); //cMiss = null, 清除当前任务, 在end事件时调用 //wfe.Curr_Mission.Clear(); } } db.SaveChanges(); } } catch(Exception e) { Trace.WriteLine(e.Message); return false; } return true; }