SenseNet.Workflow.WorkflowHandlerBase.CreateWorkflowInstance C# (CSharp) Метод

CreateWorkflowInstance() приватный Метод

private CreateWorkflowInstance ( ) : System.Activities.Activity
Результат System.Activities.Activity
        internal Activity CreateWorkflowInstance()
        {
            string version;
            return CreateWorkflowInstance(out version);
        }

Same methods

WorkflowHandlerBase::CreateWorkflowInstance ( string &version ) : System.Activities.Activity

Usage Example

Пример #1
0
        private static WorkflowApplication CreateWorkflowApplication(WorkflowHandlerBase workflowInstance, WorkflowApplicationCreationPurpose purpose, IDictionary <string, object> parameters)
        {
            try
            {
                string version;
                WorkflowApplication wfApp = null;
                var workflow = workflowInstance.CreateWorkflowInstance(out version);
                switch (purpose)
                {
                case WorkflowApplicationCreationPurpose.StartNew:
                    Dictionary <string, object> arguments = workflowInstance.CreateParameters();
                    arguments.Add(STATECONTENT, new WfContent(workflowInstance));
                    if (parameters != null)
                    {
                        foreach (var item in parameters)
                        {
                            arguments.Add(item.Key, item.Value);
                        }
                    }
                    wfApp = new WorkflowApplication(workflow, arguments);
                    workflowInstance.WorkflowDefinitionVersion = version;
                    workflowInstance.WorkflowInstanceGuid      = wfApp.Id.ToString();
                    break;

                default:
                    wfApp = new WorkflowApplication(workflow);
                    break;
                }

                WriteDebug("CreateWorkflowApplication: NodeId: " + workflowInstance.Id + ", instanceId: " + workflowInstance.WorkflowInstanceGuid + ", Purpose: " + purpose);

                InstanceHandle             ownerHandle;
                var                        store   = CreateInstanceStore(workflowInstance, out ownerHandle);
                Dictionary <XName, object> wfScope = new Dictionary <XName, object> {
                    { GetWorkflowHostTypePropertyName(), GetWorkflowHostTypeName(workflowInstance) }
                };

                wfApp.InstanceStore = store;
                wfApp.AddInitialInstanceValues(wfScope);

                wfApp.PersistableIdle      = a => { WriteDebug("PersistableIdle " + wfApp.Id); DestroyInstanceOwner(wfApp, ownerHandle); return(PersistableIdleAction.Unload); };
                wfApp.Unloaded             = b => { WriteDebug("Unloaded " + wfApp.Id); DestroyInstanceOwner(wfApp, ownerHandle); };
                wfApp.Completed            = c => { WriteDebug("Completed " + wfApp.Id); OnWorkflowCompleted(c); DestroyInstanceOwner(wfApp, ownerHandle); };
                wfApp.Aborted              = d => { WriteDebug("Aborted " + wfApp.Id); OnWorkflowAborted(d); DestroyInstanceOwner(wfApp, ownerHandle); };
                wfApp.OnUnhandledException = e => { WriteDebug("OnUnhandledException " + wfApp.Id); return(HandleError(e)); };

                wfApp.Extensions.Add(new ContentWorkflowExtension()
                {
                    WorkflowInstancePath = workflowInstance.Path
                });
                return(wfApp);
            }
            catch (Exception e)
            {
                WriteError("CreateWorkflowApplication", e);
                throw;
            }
        }
All Usage Examples Of SenseNet.Workflow.WorkflowHandlerBase::CreateWorkflowInstance