Пример #1
0
        /// <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);
            }
            
        }
Пример #2
0
        //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;
        }