Class DefinitionHandler
Implementation of IDefinitionHandler. Handles workflow definitions
Inheritance
Implements
Inherited Members
Namespace: EPiServer.WorkflowFoundation
Assembly: EPiServer.WorkflowFoundation.dll
Version: 8.11.0Syntax
public class DefinitionHandler : IDefinitionHandler
Constructors
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 |