/// <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; } }
public StateActivityDC() { if (_activity == null) { _activity = new StateActivity(); } }
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); } } }
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."); } }
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); } }
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; }
internal StateActivityDC(StateActivity activity) { _activity = activity; }
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; }
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); }
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; }