/// <summary>
        /// Run the workflow in a synchronous way using the ManualWorkflowSchedulerService
        /// </summary>
        /// <param name="workflowInstanceId"></param>
        private void RunWorkFlow(Guid workflowInstanceId)
        {
            StateMachineWorkflowInstance stateMachine = new StateMachineWorkflowInstance(_workflowRuntime, workflowInstanceId);
            StateActivity oldState = stateMachine.CurrentState;

            ManualWorkflowSchedulerService service = _workflowRuntime.GetService <ManualWorkflowSchedulerService>();

            service.RunWorkflow(workflowInstanceId);

            // Hack : This is not the best way to handle exceptions (sychronously) in Workflows
            // Read more about the best practice here - http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=833203&SiteID=1
            // And here - http://www.topxml.com/rbnews/Orchestration---Workflow/re-60988_Synchronous-CallWorkflow-sample-revisited.aspx
            if (CallContext.GetData("Exception") != null)
            {
                // This is the compensation activity - that should be ideally defined in the workflow itself
                // In our case, the only activity that occurs after External Method Calls for Book, Cancel etc.
                // is the state change activity. We just reverse it here.
                // Ideally, we can have a fault handler for each event driven activity
                // that will set the call context with a "WCFException" and halt the execution of the workflow.
                stateMachine.SetState(oldState);

                service.RunWorkflow(workflowInstanceId);

                Exception exceptionToThrow = (Exception)CallContext.GetData("Exception");

                CallContext.SetData("Exception", null);

                throw exceptionToThrow;
            }
        }
Exemple #2
0
 public StateActivityDC()
 {
     if (_activity == null)
     {
         _activity = new StateActivity();
     }
 }
Exemple #3
0
        void ShowState(object activity)
        {
            if (activity is System.Workflow.ComponentModel.CompositeActivity)
            {
                CompositeActivity Workflow = activity as CompositeActivity;
                foreach (var v in Workflow.EnabledActivities)
                {
                    var ee = new Element();
                    ee.类型   = "节";
                    ee.说明   = v.Description;
                    ee.Name = v.Name;
                    ee.X坐标  = 0;
                    ee.Y坐标  = 0;
                    ee.分支集合 = new List <string>();
                    if (v is StateActivity)
                    {
                        StateActivity sta = v as StateActivity;

                        foreach (var c in sta.EnabledActivities)
                        {
                            foreach (var cc in ((CompositeActivity)c).EnabledActivities)
                            {
                                if (cc is wxwinter.wf.WFLib.等待提交)
                                {
                                    wxwinter.wf.WFLib.等待提交 waitsubmit = cc as wxwinter.wf.WFLib.等待提交;
                                    WaitControlData        wd         = new WaitControlData();
                                    wd.办理查看业务表单 = waitsubmit.办理查看业务表单;
                                    wd.办理人员     = waitsubmit.办理人员;

                                    wd.办理时限     = waitsubmit.办理时限;
                                    wd.办理提交选项   = waitsubmit.办理提交选项;
                                    wd.办理添写业务表单 = waitsubmit.办理添写业务表单;
                                    wd.处理方式     = waitsubmit.处理方式;
                                    wd.接件部门     = waitsubmit.接件部门;
                                    wd.接件职能     = waitsubmit.接件职能;
                                    wd.启动窗体     = waitsubmit.启动窗体;
                                    wd.说明       = waitsubmit.Description;
                                    ee.结点数据     = wd;
                                }

                                if (cc is wxwinter.wf.WFLib.条件容器)
                                {
                                    wxwinter.wf.WFLib.条件容器 ic = cc as wxwinter.wf.WFLib.条件容器;

                                    foreach (var fz in ic.EnabledActivities)
                                    {
                                        wxwinter.wf.WFLib.条件分支 ifz = fz as wxwinter.wf.WFLib.条件分支;
                                        ee.分支集合.Add(ifz.条件);
                                    }
                                }
                            }
                        }
                    }


                    ElementList.Add(ee);
                }
            }
        }
Exemple #4
0
        private void AddOrderOnHoldState()
        {
            // Get a reference to the WorkflowInstance for the selected workflow
            WorkflowInstance instance =
                this.runtime.GetWorkflow(this.GetSelectedWorkflowInstanceID());

            // Get a reference to the root activity for the workflow
            Activity root = instance.GetWorkflowDefinition();

            // Create a new instance of the WorkflowChanges class for managing
            // the in-memory changes to the workflow
            WorkflowChanges changes = new WorkflowChanges(root);

            // Create a new State activity to the workflow
            StateActivity orderOnHoldState = new StateActivity();

            orderOnHoldState.Name = "OrderOnHoldState";

            // Add a new EventDriven activity to the State
            EventDrivenActivity eventDrivenDelay = new EventDrivenActivity();

            eventDrivenDelay.Name = "DelayOrderEvent";
            orderOnHoldState.Activities.Add(eventDrivenDelay);

            // Add a new Delay, initialized to 5 seconds
            DelayActivity delayOrder = new DelayActivity();

            delayOrder.Name            = "delayOrder";
            delayOrder.TimeoutDuration = new TimeSpan(0, 0, 5);
            eventDrivenDelay.Activities.Add(delayOrder);

            // Add a new SetState to the OrderOpenState
            SetStateActivity setStateOrderOpen = new SetStateActivity();

            setStateOrderOpen.TargetStateName = "OrderOpenState";
            eventDrivenDelay.Activities.Add(setStateOrderOpen);

            // Add the OnHoldState to the workflow
            changes.TransientWorkflow.Activities.Add(orderOnHoldState);

            // Apply the changes to the workflow instance
            try
            {
                instance.ApplyWorkflowChanges(changes);
            }
            catch (WorkflowValidationFailedException)
            {
                // New state has already been added
                MessageBox.Show("On Hold state has already been added to this workflow.");
            }
        }
Exemple #5
0
        public int UpdateStates(WFStateDTO message)
        {
            using (var projectContext = new DataAccess.MyProjectEntities())
            {
                var dbState = projectContext.State.FirstOrDefault(x => x.ID == message.ID);
                if (dbState == null)
                {
                    dbState = new DataAccess.State();
                }
                dbState.ID          = message.ID;
                dbState.Name        = message.Name;
                dbState.StateTypeID = Convert.ToInt16(message.StateType);
                dbState.ProcessID   = message.ProcessID;
                dbState.Description = message.Description;
                if (dbState.ID == 0)
                {
                    projectContext.State.Add(dbState);
                }

                while (dbState.StateActivity.Any())
                {
                    projectContext.StateActivity.Remove(dbState.StateActivity.First());
                }
                foreach (var msgActionTarget in message.Activities)
                {
                    var dbStateActivity = new StateActivity();
                    dbStateActivity.ActivityID = msgActionTarget.ID;
                    dbState.StateActivity.Add(dbStateActivity);
                }
                while (dbState.State_Formula.Any())
                {
                    projectContext.State_Formula.Remove(dbState.State_Formula.First());
                }
                foreach (var msgActionTarget in message.Formulas)
                {
                    var dbState_Formula = new State_Formula();
                    dbState_Formula.FormulaID = msgActionTarget.FormulaID;
                    dbState_Formula.Message   = msgActionTarget.Message;
                    dbState_Formula.TrueFalse = msgActionTarget.TrueFalse;
                    dbState.State_Formula.Add(dbState_Formula);
                }

                projectContext.SaveChanges();
                return(dbState.ID);
            }
        }
Exemple #6
0
        protected Basic1StepDialogWorkflow(string formDefinitionFile, string containerLabel)
        {
            CanModifyActivities = true;

            var codecondition1                     = new CodeCondition();
            var setStateActivity6                  = new SetStateActivity();
            var setStateActivity5                  = new SetStateActivity();
            var saveCodeActivity                   = new CodeActivity();
            var ifElseBranchActivity2              = new IfElseBranchActivity();
            var ifElseBranchActivity1              = new IfElseBranchActivity();
            var ifElseActivity                     = new IfElseActivity();
            var finishHandleExternalEventActivity  = new FinishHandleExternalEventActivity();
            var setStateActivity4                  = new SetStateActivity();
            var cancelHandleExternalEventActivity1 = new CancelHandleExternalEventActivity();

            var initCodeActivity                   = new CodeActivity();
            var setStateActivity2                  = new SetStateActivity();
            var drivenActivityOk                   = new EventDrivenActivity();
            var drivenActivityCancel               = new EventDrivenActivity();
            var initializationActivity             = new StateInitializationActivity();
            var setStateActivity1                  = new SetStateActivity();
            var cancelHandleExternalEventActivity2 = new CancelHandleExternalEventActivity();
            var stateInitializationActivity        = new StateInitializationActivity();
            var startState = new StateActivity();
            var globalCancelEventDrivenActivity = new EventDrivenActivity();
            var finalState          = new StateActivity();
            var initializationState = new StateActivity();

            //
            // setStateActivity6
            //
            setStateActivity6.Name            = "setStateActivity6";
            setStateActivity6.TargetStateName = "startState";
            //
            // setStateActivity5
            //
            setStateActivity5.Name            = "setStateActivity5";
            setStateActivity5.TargetStateName = "finalState";
            //
            // saveCodeActivity
            //
            saveCodeActivity.Name         = "saveCodeActivity";
            saveCodeActivity.ExecuteCode += (sender, e) => { SetCultureInfo(); OnFinish(sender, e); };
            //
            // ifElseBranchActivity2
            //
            ifElseBranchActivity2.Activities.Add(setStateActivity6);
            ifElseBranchActivity2.Name = "ifElseBranchActivity2";
            //
            // ifElseBranchActivity1
            //
            ifElseBranchActivity1.Activities.Add(saveCodeActivity);
            ifElseBranchActivity1.Activities.Add(setStateActivity5);
            codecondition1.Condition       += (sender, e) => { SetCultureInfo(); OnValidate(sender, e); };
            ifElseBranchActivity1.Condition = codecondition1;
            ifElseBranchActivity1.Name      = "ifElseBranchActivity1";
            //
            // ifElseActivity
            //
            ifElseActivity.Activities.Add(ifElseBranchActivity1);
            ifElseActivity.Activities.Add(ifElseBranchActivity2);
            ifElseActivity.Name = "ifElseActivity";
            //
            // finishHandleExternalEventActivity
            //
            finishHandleExternalEventActivity.EventName     = "Finish";
            finishHandleExternalEventActivity.InterfaceType = typeof(IFormsWorkflowEventService);
            finishHandleExternalEventActivity.Name          = "finishHandleExternalEventActivity";
            //
            // setStateActivity4
            //
            setStateActivity4.Name            = "setStateActivity4";
            setStateActivity4.TargetStateName = "finalState";
            //
            // cancelHandleExternalEventActivity1
            //
            cancelHandleExternalEventActivity1.EventName     = "Cancel";
            cancelHandleExternalEventActivity1.InterfaceType = typeof(IFormsWorkflowEventService);
            cancelHandleExternalEventActivity1.Name          = "cancelHandleExternalEventActivity1";

            if (formDefinitionFile != null)
            {
                var dataDialogFormActivity = new DataDialogFormActivity
                {
                    ContainerLabel         = containerLabel,
                    FormDefinitionFileName = formDefinitionFile,
                    Name = "dataDialogFormActivity"
                };

                initializationActivity.Activities.Add(dataDialogFormActivity);
            }

            //
            // initCodeActivity
            //
            initCodeActivity.Name         = "initCodeActivity";
            initCodeActivity.ExecuteCode += (sender, e) => { SetCultureInfo(); OnInitialize(sender, e); };
            //
            // setStateActivity2
            //
            setStateActivity2.Name            = "setStateActivity2";
            setStateActivity2.TargetStateName = "startState";
            //
            // DrivenActivity_Ok
            //
            drivenActivityOk.Activities.Add(finishHandleExternalEventActivity);
            drivenActivityOk.Activities.Add(ifElseActivity);
            drivenActivityOk.Name = "DrivenActivity_Ok";
            //
            // DrivenActivity_Cancel
            //
            drivenActivityCancel.Activities.Add(cancelHandleExternalEventActivity1);
            drivenActivityCancel.Activities.Add(setStateActivity4);
            drivenActivityCancel.Name = "DrivenActivity_Cancel";
            //
            // initializationActivity
            //
            initializationActivity.Activities.Add(initCodeActivity);

            initializationActivity.Name = "initializationActivity";
            //
            // setStateActivity1
            //
            setStateActivity1.Name            = "setStateActivity1";
            setStateActivity1.TargetStateName = "finalState";
            //
            // cancelHandleExternalEventActivity2
            //
            cancelHandleExternalEventActivity2.EventName     = "Cancel";
            cancelHandleExternalEventActivity2.InterfaceType = typeof(IFormsWorkflowEventService);
            cancelHandleExternalEventActivity2.Name          = "cancelHandleExternalEventActivity2";
            //
            // stateInitializationActivity
            //
            stateInitializationActivity.Activities.Add(setStateActivity2);
            stateInitializationActivity.Name = "stateInitializationActivity";
            //
            // startState
            //
            startState.Activities.Add(initializationActivity);
            startState.Activities.Add(drivenActivityCancel);
            startState.Activities.Add(drivenActivityOk);
            startState.Name = "startState";
            //
            // globalCancelEventDrivenActivity
            //
            globalCancelEventDrivenActivity.Activities.Add(cancelHandleExternalEventActivity2);
            globalCancelEventDrivenActivity.Activities.Add(setStateActivity1);
            globalCancelEventDrivenActivity.Name = "globalCancelEventDrivenActivity";
            //
            // finalState
            //
            finalState.Name = "finalState";
            //
            // initializationState
            //
            initializationState.Activities.Add(stateInitializationActivity);
            initializationState.Name = "initializationState";
            //
            // AddFormWorkflow
            //
            Activities.Add(initializationState);
            Activities.Add(finalState);
            Activities.Add(globalCancelEventDrivenActivity);
            Activities.Add(startState);
            CompletedStateName     = "finalState";
            DynamicUpdateCondition = null;
            InitialStateName       = "initializationState";
            Name = "AddFormWorkflow";
            CanModifyActivities = false;
        }
Exemple #7
0
 internal StateActivityDC(StateActivity activity)
 {
     _activity = activity;
 }
Exemple #8
0
        protected Basic1StepDocumentWorkflow(string formDefinitionFile, string containerLabel)
        {
            CanModifyActivities = true;

            var codecondition1     = new CodeCondition();
            var saveCodeActivity   = new CodeActivity();
            var elseBranchActivity = new IfElseBranchActivity();
            var ifValidateActivity = new IfElseBranchActivity();
            var setStateActivity2  = new SetStateActivity();
            var ifElseActivity1    = new IfElseActivity();
            var saveHandleExternalEventActivity1 = new SaveHandleExternalEventActivity();

            var initCodeActivity  = new CodeActivity();
            var setStateActivity1 = new SetStateActivity();
            var cancelHandleExternalEventActivity1 = new CancelHandleExternalEventActivity();
            var eventDrivenActivitySave            = new EventDrivenActivity();
            var stateInitializationActivity        = new StateInitializationActivity();
            var globalEventDrivenActivity          = new EventDrivenActivity();
            var finalState          = new StateActivity();
            var initializationState = new StateActivity();

            //
            // SaveCodeActivity
            //
            saveCodeActivity.Name         = "SaveCodeActivity";
            saveCodeActivity.ExecuteCode += (sender, e) => { SetCultureInfo(); OnFinish(sender, e); };

            //
            // elseBranchActivity
            //
            elseBranchActivity.Name = "elseBranchActivity";
            //
            // ifValidateActivity
            //
            ifValidateActivity.Activities.Add(saveCodeActivity);
            codecondition1.Condition    += (sender, e) => { SetCultureInfo(); OnValidate(sender, e); };
            ifValidateActivity.Condition = codecondition1;
            ifValidateActivity.Name      = "ifValidateActivity";
            //
            // setStateActivity2
            //
            setStateActivity2.Name            = "setStateActivity2";
            setStateActivity2.TargetStateName = "initializationState";
            //
            // ifElseActivity1
            //
            ifElseActivity1.Activities.Add(ifValidateActivity);
            ifElseActivity1.Activities.Add(elseBranchActivity);
            ifElseActivity1.Name = "ifElseActivity1";
            //
            // saveHandleExternalEventActivity1
            //
            saveHandleExternalEventActivity1.EventName     = "Save";
            saveHandleExternalEventActivity1.InterfaceType = typeof(IFormsWorkflowEventService);
            saveHandleExternalEventActivity1.Name          = "saveHandleExternalEventActivity1";

            if (formDefinitionFile != null)
            {
                var documentFormActivity1 = new DocumentFormActivity
                {
                    ContainerLabel = containerLabel,
                    CustomToolbarDefinitionFileName = String.Empty,
                    FormDefinitionFileName          = formDefinitionFile,
                    Name = "documentFormActivity1"
                };

                stateInitializationActivity.Activities.Add(documentFormActivity1);
            }

            //
            // initCodeActivity
            //
            initCodeActivity.Name         = "initCodeActivity";
            initCodeActivity.ExecuteCode += (sender, e) => { SetCultureInfo(); OnInitialize(sender, e); };
            //
            // setStateActivity1
            //
            setStateActivity1.Name            = "setStateActivity1";
            setStateActivity1.TargetStateName = "finalState";
            //
            // cancelHandleExternalEventActivity1
            //
            cancelHandleExternalEventActivity1.EventName     = "Cancel";
            cancelHandleExternalEventActivity1.InterfaceType = typeof(IFormsWorkflowEventService);
            cancelHandleExternalEventActivity1.Name          = "cancelHandleExternalEventActivity1";
            //
            // eventDrivenActivity_Save
            //
            eventDrivenActivitySave.Activities.Add(saveHandleExternalEventActivity1);
            eventDrivenActivitySave.Activities.Add(ifElseActivity1);
            eventDrivenActivitySave.Activities.Add(setStateActivity2);
            eventDrivenActivitySave.Name = "eventDrivenActivity_Save";
            //
            // stateInitializationActivity
            //
            stateInitializationActivity.Activities.Add(initCodeActivity);
            stateInitializationActivity.Name = "stateInitializationActivity";
            //
            // GlobalEventDrivenActivity
            //
            globalEventDrivenActivity.Activities.Add(cancelHandleExternalEventActivity1);
            globalEventDrivenActivity.Activities.Add(setStateActivity1);
            globalEventDrivenActivity.Name = "GlobalEventDrivenActivity";
            //
            // finalState
            //
            finalState.Name = "finalState";
            //
            // initializationState
            //
            initializationState.Activities.Add(stateInitializationActivity);
            initializationState.Activities.Add(eventDrivenActivitySave);
            initializationState.Name = "initializationState";
            //
            // EditFormWorkflow
            //
            Activities.Add(initializationState);
            Activities.Add(finalState);
            Activities.Add(globalEventDrivenActivity);
            CompletedStateName     = "finalState";
            DynamicUpdateCondition = null;
            InitialStateName       = "initializationState";
            Name = "EditFormWorkflow";
            CanModifyActivities = false;
        }
Exemple #9
0
        public T GetFlowObject <T>(FlowChart flowChart)
        {
            string lzm = string.Format(Resource.myState, "结束状态", "900", "700");

            //-------------------------------------------------------------------------
            wxwinter.wf.WFLib.状态机模板 workflow = new wxwinter.wf.WFLib.状态机模板();
            RuleConditionReference  ruleconditionreference1 = new RuleConditionReference();

            ruleconditionreference1.ConditionName = "启用";
            workflow.SetValue(WorkflowChanges.ConditionProperty, ruleconditionreference1);

            FlowChartData fcd = flowChart.FlowData as FlowChartData;

            if (fcd != null)
            {
                workflow.模板版本     = fcd.模板版本;
                workflow.模板编号     = fcd.模板编号;
                workflow.模板名称     = fcd.模板名称;
                workflow.模板说明     = fcd.模板说明;
                workflow.启动时填写的表单 = fcd.启动时填写的表单;
                workflow.数据表单列表   = fcd.数据表单列表;
            }


            //-开始结点
            workflow.InitialStateName = "开始状态";

            StateActivity 开始状态 = new StateActivity("开始状态");
            StateInitializationActivity 开始状态自动容器 = new StateInitializationActivity("开始状态自动容器");

            wxwinter.wf.WFLib.初始化 开始启动流程 = new wxwinter.wf.WFLib.初始化();
            开始启动流程.Name = "开始启动流程";

            workflow.Activities.Add(开始状态);
            开始状态.Activities.Add(开始状态自动容器);
            开始状态自动容器.Activities.Add(开始启动流程);



            ////////////////
            foreach (var node in flowChart.ElementList)
            {
                lzm = lzm + string.Format(Resource.myState, node.Name, node.X坐标, node.Y坐标);

                if (node.类型 == "头")
                {
                    var r = flowChart.ElementRelationList.FirstOrDefault(p => p.起点 == node.Name && p.路由 == "开始状态");

                    if (r != null)
                    {
                        SetStateActivity 启动流程 = new SetStateActivity("启动流程");
                        启动流程.TargetStateName = r.目标;
                        开始状态自动容器.Activities.Add(启动流程);
                    }
                }
            }
            //----------------------------------------------------------------

            //-完成结点

            StateActivity 结束状态 = new StateActivity("结束状态");

            workflow.Activities.Add(结束状态);
            workflow.CompletedStateName = "结束状态";


            StateActivity 归档状态 = new StateActivity("归档状态");
            StateInitializationActivity 归档状态自动容器 = new StateInitializationActivity("归档状态自动容器");

            wxwinter.wf.WFLib.归档 流程归档 = new wxwinter.wf.WFLib.归档();
            流程归档.Name = "流程归档";

            workflow.Activities.Add(归档状态);
            归档状态.Activities.Add(归档状态自动容器);
            归档状态自动容器.Activities.Add(流程归档);

            SetStateActivity 完成流程 = new SetStateActivity("完成流程");

            完成流程.TargetStateName = "结束状态";
            归档状态自动容器.Activities.Add(完成流程);



            //


            WindowsWorkflowObject wf = new WindowsWorkflowObject();

            foreach (var node in flowChart.ElementList)
            {
                if (node.类型 == "节")
                {
                    string n = node.Name;


                    System.Workflow.Activities.StateActivity state = new System.Workflow.Activities.StateActivity();
                    state.Name = n;

                    System.Workflow.Activities.EventDrivenActivity eda = new System.Workflow.Activities.EventDrivenActivity();
                    eda.Name = n + "_等待容器";

                    wxwinter.wf.WFLib.等待提交 waitsubmit = new wxwinter.wf.WFLib.等待提交();
                    waitsubmit.Name = n + "_处理中";
                    waitsubmit.状态名称 = n + "_处理中";

                    WaitControlData wd = node.结点数据 as WaitControlData;


                    waitsubmit.办理查看业务表单 = wd.办理查看业务表单;
                    waitsubmit.办理人员     = wd.办理人员;

                    waitsubmit.办理时限     = wd.办理时限;
                    waitsubmit.办理提交选项   = wd.办理提交选项;
                    waitsubmit.办理添写业务表单 = wd.办理添写业务表单;
                    waitsubmit.处理方式     = wd.处理方式;
                    waitsubmit.接件部门     = wd.接件部门;
                    waitsubmit.接件职能     = wd.接件职能;
                    waitsubmit.启动窗体     = wd.启动窗体;

                    waitsubmit.Description = wd.说明;



                    wxwinter.wf.WFLib.条件容器 ir = new wxwinter.wf.WFLib.条件容器();
                    ir.Name = n + "_处理分支";

                    string ts = "";
                    foreach (var v in node.分支集合)
                    {
                        wxwinter.wf.WFLib.条件分支 fz = new wxwinter.wf.WFLib.条件分支();
                        fz.Name = n + "_处理分支_" + v.ToString();
                        fz.条件   = v.ToString();
                        ir.Activities.Add(fz);
                        ts = ts + v.ToString() + ",";



                        var r = flowChart.ElementRelationList.FirstOrDefault(p => p.起点 == node.Name && p.路由 == v);

                        if (r == null)
                        {
                            wf = null;
                            T tp = (T)((object)wf);

                            return((T)tp);
                        }
                        else
                        {
                            SetStateActivity tp = new SetStateActivity(node.Name + "_到_" + r.目标);
                            tp.TargetStateName = r.目标;
                            fz.Activities.Add(tp);
                        }
                    }
                    if (ts != "")
                    {
                        waitsubmit.办理提交选项 = ts.Remove(ts.Length - 1);
                    }


                    eda.Activities.Add(waitsubmit);
                    eda.Activities.Add(ir);
                    state.Activities.Add(eda);

                    workflow.Activities.Add(state);
                }
            }

            string q = WorkflowClassToXomlString(workflow);

            wf.Xoml  = q.Replace("utf-16", "utf-8");
            wf.Rules = Resource.myRule;

            wf.Layout = string.Format(Resource.myLayout, lzm);



            T t = (T)((object)wf);

            return((T)t);
        }
Exemple #10
0
        private void InitializeComponent()
        {
            CanModifyActivities = true;
            CodeCondition codecondition1 = new CodeCondition();

            ProofReadSetStateQualityNotOK = new SetStateActivity();
            ProofReadSetStateQualityOK    = new SetStateActivity();
            ProofReadElseBranchActivity2  = new IfElseBranchActivity();
            ProofReadElseBranch           = new IfElseBranchActivity();
            PrintFinalizationCode         = new CodeActivity();
            PrintSetState        = new SetStateActivity();
            PrintCode            = new CodeActivity();
            PrintDelay           = new DelayActivity();
            ProofReadIfElse      = new IfElseActivity();
            ProofReadDelay       = new DelayActivity();
            CreateInitCode       = new CodeActivity();
            DocumentSetState     = new SetStateActivity();
            CodeDocument         = new CodeActivity();
            CreateDelay          = new DelayActivity();
            PrintFinalization    = new StateFinalizationActivity();
            PrintEventDriven     = new EventDrivenActivity();
            ProofReadEventDriven = new EventDrivenActivity();
            CreateInitialization = new StateInitializationActivity();
            CreateDriven         = new EventDrivenActivity();
            End       = new StateActivity();
            Print     = new StateActivity();
            ProofRead = new StateActivity();
            Create    = new StateActivity();

            // ProofReadSetStateQualityNotOK
            ProofReadSetStateQualityNotOK.Name            = "ProofReadSetStateQualityNotOK";
            ProofReadSetStateQualityNotOK.TargetStateName = "Print";

            // ProofReadSetStateQualityOK
            ProofReadSetStateQualityOK.Name            = "ProofReadSetStateQualityOK";
            ProofReadSetStateQualityOK.TargetStateName = "End";

            // ProofReadElseBranchActivity2
            ProofReadElseBranchActivity2.Activities.Add(ProofReadSetStateQualityNotOK);
            ProofReadElseBranchActivity2.Name = "ProofReadElseBranchActivity2";

            // ProofReadElseBranch
            ProofReadElseBranch.Activities.Add(ProofReadSetStateQualityOK);
            codecondition1.Condition     += new EventHandler <ConditionalEventArgs> (ProofReadIfElseConditionFunction);
            ProofReadElseBranch.Condition = codecondition1;
            ProofReadElseBranch.Name      = "ProofReadElseBranch";

            // PrintFinalizationCode
            PrintFinalizationCode.Name         = "PrintFinalizationCode";
            PrintFinalizationCode.ExecuteCode += new EventHandler(PrintFinalizationCodeFunction);

            // PrintSetState
            PrintSetState.Name            = "PrintSetState";
            PrintSetState.TargetStateName = "End";

            // PrintCode
            PrintCode.Name         = "PrintCode";
            PrintCode.ExecuteCode += new EventHandler(PrintCodeFunction);

            // PrintDelay
            PrintDelay.Name            = "PrintDelay";
            PrintDelay.TimeoutDuration = TimeSpan.Parse("00:00:02");

            // ProofReadIfElse
            ProofReadIfElse.Activities.Add(ProofReadElseBranch);
            ProofReadIfElse.Activities.Add(ProofReadElseBranchActivity2);
            ProofReadIfElse.Description = "Quality is OK?";
            ProofReadIfElse.Name        = "ProofReadIfElse";

            // ProofReadDelay
            ProofReadDelay.Name            = "ProofReadDelay";
            ProofReadDelay.TimeoutDuration = TimeSpan.Parse("00:00:01");

            // CreateInitCode
            CreateInitCode.Name         = "CreateInitCode";
            CreateInitCode.ExecuteCode += new EventHandler(CreateInitCodeFunction);

            // DocumentSetState
            DocumentSetState.Name            = "DocumentSetState";
            DocumentSetState.TargetStateName = "ProofRead";

            // CodeDocument
            CodeDocument.Name         = "CodeDocument";
            CodeDocument.ExecuteCode += new EventHandler(CodeDocumentFunction);

            // CreateDelay
            CreateDelay.Name            = "CreateDelay";
            CreateDelay.TimeoutDuration = TimeSpan.Parse("00:00:01");

            // PrintFinalization
            PrintFinalization.Activities.Add(PrintFinalizationCode);
            PrintFinalization.Name = "PrintFinalization";

            // PrintEventDriven
            PrintEventDriven.Activities.Add(PrintDelay);
            PrintEventDriven.Activities.Add(PrintCode);
            PrintEventDriven.Activities.Add(PrintSetState);
            PrintEventDriven.Name = "PrintEventDriven";

            // ProofReadEventDriven
            ProofReadEventDriven.Activities.Add(ProofReadDelay);
            ProofReadEventDriven.Activities.Add(ProofReadIfElse);
            ProofReadEventDriven.Name = "ProofReadEventDriven";

            // CreateInitialization
            CreateInitialization.Activities.Add(CreateInitCode);
            CreateInitialization.Name = "CreateInitialization";

            // CreateDriven
            CreateDriven.Activities.Add(CreateDelay);
            CreateDriven.Activities.Add(CodeDocument);
            CreateDriven.Activities.Add(DocumentSetState);
            CreateDriven.Name = "CreateDriven";

            // End
            End.Name = "End";

            // Print
            Print.Activities.Add(PrintEventDriven);
            Print.Activities.Add(PrintFinalization);
            Print.Name = "Print";

            // ProofRead
            ProofRead.Activities.Add(ProofReadEventDriven);
            ProofRead.Name = "ProofRead";

            // Create
            Create.Activities.Add(CreateDriven);
            Create.Activities.Add(CreateInitialization);
            Create.Name = "Create";

            // DocumentCreation
            Activities.Add(Create);
            Activities.Add(ProofRead);
            Activities.Add(Print);
            Activities.Add(End);
            CompletedStateName = "End";
            InitialStateName   = "Create";
            Name = "DocumentCreation";
            CanModifyActivities = false;
        }