亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? enginemanager.cs

?? 基于微軟WF開發的工作流全套實例源碼
?? CS
?? 第 1 頁 / 共 2 頁
字號:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Runtime.Tracking;
using System.Workflow.Runtime.Hosting;
using System.ComponentModel.Design;
using System.Xml;
using System.Reflection;
using System.Workflow.ComponentModel.Compiler;
using System.IO;
using System.CodeDom.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.ComponentModel.Design.Serialization;
using System.Collections;
using wxwinter.wf.UDPCommunication;
using System.Workflow.ComponentModel;

namespace wxwinter.wf.Service
{
	public class EngineManager : wxwinter.wf.Service.IEngineManager 
	{
        //引擎
        System.Workflow.Runtime.WorkflowRuntime WFEngine = null;
        
        //UDP發送對象
        UDPSend send;

        //引擎日志
        private ArrayList engineLog = new ArrayList();

 

        public EngineManager(WorkflowRuntime Engine)
        {
            if (Engine == null)
            { throw new System.Exception("引擎對象沒有實例化"); }
            WFEngine = Engine;
            eventBind();
           
        }

        /// <summary>
        /// 構造函數
        /// </summary>
        /// <param name="Engine">引擎</param>
        /// <param name="udpobj">UDP對象</param>
        public EngineManager(WorkflowRuntime Engine, UDPSend udpobj)
        {
            if (udpobj == null || Engine ==null)
            { throw new System.Exception("UDP對象或引擎對象沒有實例化"); }
           
            engineLog.Add("UDP服務已加載");
           
            send = udpobj;
            WFEngine = Engine;
            
            eventBind();
        }
        /// <summary>
        /// 事件綁定
        /// </summary>
        void eventBind()
        {
            WFEngine.Started += new EventHandler<WorkflowRuntimeEventArgs>(WFEngine_Started);
            WFEngine.Stopped += new EventHandler<WorkflowRuntimeEventArgs>(WFEngine_Stopped);
            WFEngine.ServicesExceptionNotHandled += new EventHandler<ServicesExceptionNotHandledEventArgs>(WFEngine_ServicesExceptionNotHandled);
            WFEngine.WorkflowAborted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowAborted);
            WFEngine.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(TestEngine_WorkflowCompleted);
            WFEngine.WorkflowCreated += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowCreated);
            WFEngine.WorkflowIdled += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowIdled);
            WFEngine.WorkflowLoaded += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowLoaded);
            WFEngine.WorkflowPersisted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowPersisted);
            WFEngine.WorkflowResumed += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowResumed);
            WFEngine.WorkflowStarted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowStarted);
            WFEngine.WorkflowSuspended += new EventHandler<WorkflowSuspendedEventArgs>(TestEngine_WorkflowSuspended);
            WFEngine.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(TestEngine_WorkflowTerminated);
            WFEngine.WorkflowUnloaded += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowUnloaded);

        }


        /// <summary>
        /// 得到日志列表
        /// </summary>
        /// <returns></returns>
        public ArrayList GetEngineLog()
        {
            return engineLog;
        }

        //工作流類到xoml字串
        string GetWorkflowClassXomlString(Activity wf)
        {
            WorkflowMarkupSerializer wfSerializer = new WorkflowMarkupSerializer();
            DesignerSerializationManager sm = new DesignerSerializationManager();
            sm.CreateSession();

            System.Text.StringBuilder s = new StringBuilder();
            XmlWriter xmlwriter = XmlWriter.Create(s);

            wfSerializer.Serialize(sm, xmlwriter, wf);
            if (sm.Errors.Count > 0)
            {
                engineLog.Add("GetWorkflowClassXomlString出現錯誤:" + sm.Errors.Count.ToString());
            }
            return s.ToString();
        }

        //工作流類到xoml字串
        public string GetWorkflowInstanceXomlString(string guid)
        {
     

            WorkflowInstance temp = GetInstance(guid);
            if (temp != null)
            {
                string s = GetWorkflowClassXomlString(temp.GetWorkflowDefinition());
                return s;
                
            }
            else
            {
                return "";
            }

            
        }

        /// <summary>
        /// 引擎中是否存在指定實例
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public bool IsExistInstance(string guid)
        {
          bool b=GetInstanceList().Contains(guid);
          return b;
        }
        /// <summary>
        /// 得到工作流實例
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public WorkflowInstance  GetInstance(string guid)
        {

            if (!WFEngine.IsStarted)
            {
                this.engineLog.Add("在引擎暫停時讀取" + guid);
                return null;
            }
           if (IsExistInstance(guid))
            {      
              Guid gid = new Guid(guid);
              WorkflowInstance temp= WFEngine.GetWorkflow(gid);
              return temp;
            }

            else
            {
                return GetInstanceFormPersist(guid);
            }
        }

        WorkflowInstance GetInstanceFormPersist(string guid)
        {
            Guid gid = new Guid(guid);
            WorkflowInstance temp;
            try
            {
                temp = WFEngine.GetWorkflow(gid);
                temp.Load();
                return temp;
            }
            catch
            {
                return null;
            }
        }



        #region 事件綁定
        void WFEngine_Stopped(object sender, WorkflowRuntimeEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "Stopped");
            this.engineLog.Add(s);
        }

        void WFEngine_Started(object sender, WorkflowRuntimeEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "Started");

            this.engineLog.Add(s);
        }

        void WFEngine_ServicesExceptionNotHandled(object sender, ServicesExceptionNotHandledEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "ServicesExceptionNotHandled" + e.Exception.Message);
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstanceId.ToString(), "ServicesExceptionNotHandled", System.DateTime.Now.ToString(),e.Exception.Message);
            sendMsg(v);
        }

        void TestEngine_WorkflowUnloaded(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowUnloaded", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowTerminated(object sender, WorkflowTerminatedEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowTerminated", System.DateTime.Now.ToString(), e.Exception.Message);
            sendMsg(v);
        }

        void TestEngine_WorkflowSuspended(object sender, WorkflowSuspendedEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowSuspended", System.DateTime.Now.ToString(), e.Error);
            sendMsg(v);
        }

        void TestEngine_WorkflowStarted(object sender, WorkflowEventArgs e)
        {
            this.nStarteInstance++;
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowStarted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowResumed(object sender, WorkflowEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowResumed", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowPersisted(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowPersisted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowLoaded(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowLoaded", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowIdled(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowIdled", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowCreated(object sender, WorkflowEventArgs e)
        {
            this.nCreateInstance++; 
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowCreated", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowCompleted(object sender, WorkflowCompletedEventArgs e)
        {
            this.nCompletedInstance++;
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowCompleted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowAborted(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowAborted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        public void sendMsg(string v)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合二区| 老司机免费视频一区二区三区| 91精品国产综合久久精品麻豆| 91偷拍与自偷拍精品| eeuss鲁片一区二区三区在线观看| 国产一区二区不卡| 国产69精品久久99不卡| 岛国av在线一区| 成人ar影院免费观看视频| 成人性生交大片免费看视频在线| 成人国产免费视频| 色噜噜狠狠色综合中国| 欧美日韩国产一区| 精品久久久久久综合日本欧美| 欧美大肚乱孕交hd孕妇| 久久久久国产成人精品亚洲午夜| 国产精品三级在线观看| 亚洲精品国产视频| 美女精品一区二区| 成人午夜电影久久影院| 欧美这里有精品| 欧美一级日韩不卡播放免费| 久久久综合视频| 亚洲特黄一级片| 日本亚洲最大的色成网站www| 久久精品久久综合| 99久精品国产| 91精品在线免费观看| 精品国产第一区二区三区观看体验| 久久久久久一二三区| 亚洲免费电影在线| 另类小说图片综合网| 丰满少妇在线播放bd日韩电影| 91久久国产最好的精华液| 日韩欧美高清一区| 日韩一区中文字幕| 久久精品72免费观看| 99精品视频在线观看| 欧美大胆人体bbbb| 依依成人精品视频| 国产精品影视在线| 欧美肥妇bbw| 亚洲精品高清在线观看| 美女视频免费一区| 欧美在线观看视频在线| 国产日韩欧美麻豆| 久久99久久精品欧美| 91福利精品视频| 日本一区二区久久| 免费美女久久99| 精品视频一区三区九区| 国产精品网站一区| 久久99国内精品| 欧美日韩夫妻久久| 一区二区三区四区中文字幕| 国产成人综合精品三级| 欧美成人午夜电影| 日韩国产欧美在线视频| 在线观看免费一区| 日韩伦理免费电影| 成人午夜在线播放| 国产亚洲一本大道中文在线| 麻豆精品视频在线观看| 91精品国产综合久久蜜臀| 夜夜夜精品看看| 在线视频亚洲一区| 亚洲欧美日韩国产另类专区| 成人av电影在线网| 欧美国产综合色视频| 成人一区二区在线观看| 欧美精品一区在线观看| 欧美电影免费观看高清完整版在线观看| 亚洲精品免费一二三区| 国产成人自拍网| 国产欧美在线观看一区| 国产精品白丝av| 国产亚洲短视频| 成人黄色av电影| 中文字幕一区二区三区精华液| 成人动漫一区二区在线| 国产精品久久久久一区二区三区 | 国产成人免费视频网站高清观看视频 | 日韩一区二区三区精品视频| 亚洲va欧美va天堂v国产综合| 欧美性受xxxx黑人xyx性爽| 午夜精品一区二区三区免费视频 | 久久久精品国产99久久精品芒果| 蜜臀99久久精品久久久久久软件| 日韩欧美国产一二三区| 国产91丝袜在线18| 亚洲色图视频免费播放| 欧美三级电影精品| 麻豆精品一区二区三区| 国产欧美日韩卡一| 色8久久人人97超碰香蕉987| 亚洲成精国产精品女| 日韩写真欧美这视频| 国产精品一区在线观看乱码| 亚洲手机成人高清视频| 在线播放一区二区三区| 国产精品18久久久久| 亚洲免费三区一区二区| 欧美色手机在线观看| 激情成人综合网| 亚洲免费看黄网站| 99国内精品久久| 欧美aaaaa成人免费观看视频| 久久久久久亚洲综合| 欧美三级视频在线| 懂色中文一区二区在线播放| 亚洲午夜电影网| 久久久久久久精| 欧美日韩另类一区| 成人永久免费视频| 日本三级韩国三级欧美三级| 国产精品国产三级国产普通话99 | 午夜一区二区三区视频| 久久夜色精品一区| 在线区一区二视频| 国产成人在线看| 日韩av在线免费观看不卡| 亚洲欧洲国产日韩| 精品国产凹凸成av人导航| 91极品视觉盛宴| 成人黄动漫网站免费app| 裸体在线国模精品偷拍| 亚洲成人av一区二区三区| 国产精品嫩草99a| 精品国产一区二区三区久久影院 | 欧美国产精品v| 日韩视频免费观看高清完整版在线观看| 波多野结衣一区二区三区 | 成人av在线网| 久久精品99国产精品日本| 亚洲va在线va天堂| 一卡二卡三卡日韩欧美| 中文字幕一区二| 日本一区二区三区四区| 久久精品在这里| 久久久综合视频| 久久久久久免费网| 精品国产乱码久久久久久免费| 欧美精品一二三四| 欧美高清视频www夜色资源网| 日本精品视频一区二区| 一本色道久久综合狠狠躁的推荐 | 2021国产精品久久精品| 精品嫩草影院久久| 欧美v国产在线一区二区三区| 91精品综合久久久久久| 欧美一区二区在线不卡| 日韩免费电影一区| 欧美精品一区视频| 久久视频一区二区| 欧美经典一区二区| 国产精品女同互慰在线看| 国产精品麻豆久久久| 亚洲欧洲日韩在线| 亚洲一区二区欧美激情| 亚洲成人先锋电影| 久久国产夜色精品鲁鲁99| 国模冰冰炮一区二区| 高清成人在线观看| 91免费版在线| 欧美色综合久久| 日韩一卡二卡三卡四卡| 久久久久国产成人精品亚洲午夜 | 欧美日韩激情一区二区三区| 欧美日韩国产乱码电影| 宅男在线国产精品| 国产亚洲美州欧州综合国| 亚洲日本青草视频在线怡红院| 亚洲一区二区三区视频在线| 麻豆国产欧美日韩综合精品二区| 国产精品18久久久| 91国偷自产一区二区三区成为亚洲经典| 9i在线看片成人免费| 欧美四级电影网| 久久久不卡影院| 亚洲午夜激情网页| 精彩视频一区二区三区| 成人美女视频在线观看| 色94色欧美sute亚洲线路一ni| 日韩一区二区三区观看| 国产精品成人免费在线| 免费精品视频在线| 91亚洲永久精品| 久久综合九色综合97婷婷女人| 成人欧美一区二区三区视频网页| 午夜av区久久| 成人精品视频.| 日韩一区二区电影| 亚洲人成网站精品片在线观看 | 国产69精品久久777的优势| 欧美在线免费观看亚洲| 久久嫩草精品久久久久| 亚洲夂夂婷婷色拍ww47| 成人天堂资源www在线| 日韩亚洲国产中文字幕欧美| 亚洲精品水蜜桃|