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."); } }
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; }
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; }
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; }