Class DefinitionHandler
Implementation of IDefinitionHandler. Handles workflow definitions
Inheritance
Implements
Inherited Members
Namespace: EPiServer.WorkflowFoundation
Assembly: EPiServer.WorkflowFoundation.dll
Version: 7.19.2Syntax
public class DefinitionHandler : IDefinitionHandlerConstructors
DefinitionHandler(IStorageProvider, IBroadcastHandler)
Do not create an instance of this object, use DefinitionHandler to get the singelton instance instead.
Declaration
public DefinitionHandler(IStorageProvider provider, IBroadcastHandler broadcastHandler)Parameters
| Type | Name | Description | 
|---|---|---|
| IStorageProvider | provider | storage provider | 
| IBroadcastHandler | broadcastHandler | The component that handles broadcast | 
Properties
BroadcastHandler
Handle to broadcast sender
Declaration
protected IBroadcastHandler BroadcastHandler { get; }Property Value
| Type | Description | 
|---|---|
| IBroadcastHandler | The broadcast handler. | 
Remarks
To change type override EPiServer.WorkflowFoundation.AspNetWorkflowManager.BroadcastHandler
RegisteredDependencyPaths
Returns paths to all registered custom dependencies
Declaration
public virtual ReadOnlyCollection<string> RegisteredDependencyPaths { get; }Property Value
| Type | Description | 
|---|---|
| System.Collections.ObjectModel.ReadOnlyCollection<System.String> | 
StorageProvider
Handle to storage provider
Declaration
protected IStorageProvider StorageProvider { get; }Property Value
| Type | Description | 
|---|---|
| IStorageProvider | 
Remarks
To change type override StorageProvider
WorkflowDefinitions
Accessor that loads definitions from storage if they are not loaded
Declaration
protected virtual Dictionary<Guid, WorkflowDefinition> WorkflowDefinitions { get; }Property Value
| Type | Description | 
|---|---|
| System.Collections.Generic.Dictionary<System.Guid, WorkflowDefinition> | 
Methods
ContainsDefinition(Guid)
Indicates wetter there exists an definition with this id
Declaration
public virtual bool ContainsDefinition(Guid definitionId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Guid | definitionId | definition id | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | wetter instance exist | 
ContainsDefinition(String)
Indicates wetter there exists an definition with this name
Declaration
public virtual bool ContainsDefinition(string definitionName)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | definitionName | the name of the definition to check for | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | wetter instance exist | 
DeleteDefinition(WorkflowDefinition)
Deletes the definition.
Declaration
protected virtual void DeleteDefinition(WorkflowDefinition definition)Parameters
| Type | Name | Description | 
|---|---|---|
| WorkflowDefinition | definition | The definition to delete | 
DeleteDefinition(Guid)
Unregisters a defintion from runtime
Declaration
public virtual void DeleteDefinition(Guid definitionId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Guid | definitionId | The id of the definition to delete | 
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | Definition not found or running instances | 
DeleteDefinition(String)
Unregisters a defintion from runtime
Declaration
public virtual void DeleteDefinition(string definitionName)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | definitionName | The name of the definition to delete | 
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | Definition not found or running instances | 
GetDefinition(Guid)
Returns the Workflow definition
Declaration
public virtual WorkflowDefinition GetDefinition(Guid definitionId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Guid | definitionId | unique id of definition | 
Returns
| Type | Description | 
|---|---|
| WorkflowDefinition | definition | 
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | Definition not found | 
GetDefinition(String)
Returns the Workflow definition
Declaration
public virtual WorkflowDefinition GetDefinition(string definitionName)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | definitionName | unique name of definition | 
Returns
| Type | Description | 
|---|---|
| WorkflowDefinition | definition | 
GetDefinitions()
Gets all registered Workflow definitions
Declaration
public virtual IList<WorkflowDefinition> GetDefinitions()Returns
| Type | Description | 
|---|---|
| System.Collections.Generic.IList<WorkflowDefinition> | List of all registered definitions | 
LoadDefinitions()
Loads definitions from storage
Declaration
protected virtual Dictionary<Guid, WorkflowDefinition> LoadDefinitions()Returns
| Type | Description | 
|---|---|
| System.Collections.Generic.Dictionary<System.Guid, WorkflowDefinition> | definitions | 
RegisterDefinition(String, String, Type)
Registers a compiled Workflow type with runtime
Declaration
public virtual CompiledWorkflowDefinition RegisterDefinition(string name, string description, Type compiledType)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | name | The name of the definiton, has to be unique | 
| System.String | description | A descrition of the definition | 
| System.Type | compiledType | The Workflow type to register | 
Returns
| Type | Description | 
|---|---|
| CompiledWorkflowDefinition | definition | 
Remarks
The compiled type must be a workflow
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If some input is not valid | 
RegisterDefinition(String, String, Type, AccessControlList)
Registers a compiled Workflow type with runtime
Declaration
public virtual CompiledWorkflowDefinition RegisterDefinition(string name, string description, Type compiledType, AccessControlList acl)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | name | The name of the definiton, has to be unique | 
| System.String | description | A descrition of the definition | 
| System.Type | compiledType | The Workflow type to register | 
| AccessControlList | acl | The acl. | 
Returns
| Type | Description | 
|---|---|
| CompiledWorkflowDefinition | definition | 
Remarks
The compiled type must be a workflow
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If some input is not valid | 
RegisterDependencyPath(String)
If custom activities has external dependencies they must be registered so activity can be compiled and loaded. Can be registered in web.config under references section
Declaration
public virtual void RegisterDependencyPath(string path)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | path | The path to referenced assembly | 
RegisterXomlDefinition(String, String, String, String, String, AccessControlList, out CompilerErrorCollection)
Registers a xoml based Workflow type with runtime
Declaration
public virtual XomlWorkflowDefinition RegisterXomlDefinition(string name, string description, string xoml, string cs, string rules, AccessControlList acl, out CompilerErrorCollection errors)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | name | The name of the definiton, has to be unique | 
| System.String | description | The description of the definition | 
| System.String | xoml | The xoml to register | 
| System.String | cs | C# based code beside associated with xoml (if any) | 
| System.String | rules | Rules associated with xoml (if any) | 
| AccessControlList | acl | The acl for the definition | 
| System.CodeDom.Compiler.CompilerErrorCollection | errors | errors/warnings from compilation | 
Returns
| Type | Description | 
|---|---|
| XomlWorkflowDefinition | registered definition | 
Remarks
passed xoml, cs and rules will be compiled to assembly at registration. If there are dependencies to external types this can be registered in web.config under references section
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If some input is not valid | 
RegisterXomlDefinition(String, String, String, String, String, out CompilerErrorCollection)
Registers a xoml based Workflow type with runtime
Declaration
public virtual XomlWorkflowDefinition RegisterXomlDefinition(string name, string description, string xoml, string cs, string rules, out CompilerErrorCollection errors)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | name | The name of the definiton, has to be unique | 
| System.String | description | The description of the definition | 
| System.String | xoml | The xoml to register | 
| System.String | cs | C# based code beside associated with xoml (if any) | 
| System.String | rules | Rules associated with xoml (if any) | 
| System.CodeDom.Compiler.CompilerErrorCollection | errors | errors/warnings from compilation | 
Returns
| Type | Description | 
|---|---|
| XomlWorkflowDefinition | registered definition | 
Remarks
passed xoml, cs and rules will be compiled to assembly at registration. If there are dependencies to external types this can be registered in web.config under references section
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If some input is not valid | 
RemoveUnusedAssemblies()
It might not be possible to remove an assembly from disk when xoml based definition is removed/updated due to the fact that it might have been loaded in AppDomain. A call to this method will try to delete unused assemblies from disk.
Declaration
public virtual void RemoveUnusedAssemblies()SaveDefinition(CompiledWorkflowDefinition)
Saves the compiled workflow definition.
Declaration
public virtual void SaveDefinition(CompiledWorkflowDefinition definition)Parameters
| Type | Name | Description | 
|---|---|---|
| CompiledWorkflowDefinition | definition | The definition to save. | 
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If input is not valid | 
SaveDefinition(WorkflowDefinition)
Saves the workflow definition.
Declaration
public virtual void SaveDefinition(WorkflowDefinition definition)Parameters
| Type | Name | Description | 
|---|---|---|
| WorkflowDefinition | definition | The definition to save. | 
Remarks
If xoml based is used the overloaded method with error collection is recommended, since it gives more detail if compilation fails.
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If input is not valid | 
SaveDefinition(XomlWorkflowDefinition, out CompilerErrorCollection)
Saves the xoml based workflow definition.
Declaration
public virtual void SaveDefinition(XomlWorkflowDefinition definition, out CompilerErrorCollection errors)Parameters
| Type | Name | Description | 
|---|---|---|
| XomlWorkflowDefinition | definition | The definition to save. | 
| System.CodeDom.Compiler.CompilerErrorCollection | errors | compilation output | 
Remarks
passed xoml, cs and rules will be compiled to assembly at registration. If there are dependencies to external types this can be registered in web.config under references section
Exceptions
| Type | Condition | 
|---|---|
| WorkflowDefinitionException | If some input is not valid | 
TryGetDefinition(Guid, out WorkflowDefinition)
Tries to get a defintion with given guid.
Declaration
public virtual bool TryGetDefinition(Guid definitionId, out WorkflowDefinition definition)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Guid | definitionId | The id of the definition to get | 
| WorkflowDefinition | definition | The definition with the given id. Null if defintion does not exist | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if definition exists else false | 
TryGetDefinition(String, out WorkflowDefinition)
Tries to get a defintion with given name.
Declaration
public virtual bool TryGetDefinition(string definitionName, out WorkflowDefinition definition)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | definitionName | The name of the definition to get | 
| WorkflowDefinition | definition | The definition with the given name. Null if defintion does not exist | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if definition exists else false | 
