Assembly: OptimaJet.Workflow.Core

Class DeactivatedWorkflowActionProvider

OptimaJet.Workflow.Core.Runtime.DeactivatedWorkflowActionProvider

Wraps an IWorkflowActionProvider and allows it to be enabled or disabled dynamically.

public sealed class DeactivatedWorkflowActionProvider : IWorkflowActionProvider

Type Hierarchy

Constructors

public DeactivatedWorkflowActionProvider(IWorkflowActionProvider activatedActionProvider, Func<bool> getDisabled) #
Initializes a new dynamically switchable wrapper around a workflow action provider.

Parameters

Name
Type
Description
activatedActionProvider
IWorkflowActionProvider
The provider to which calls are forwarded while getDisabled returns false.
getDisabled
Func<Boolean>
The predicate evaluated for every method call. A result of true selects EmptyWorkflowActionProvider.Value; a result of false selects activatedActionProvider.

Methods

public void ExecuteAction(string name, ProcessInstance processInstance, WorkflowRuntime runtime, string actionParameter) #
Executes an action.

Parameters

Name
Type
Description
name
String
Name of the action to execute.
processInstance
ProcessInstance
The process instance from which the action is executed. ProcessInstance
runtime
WorkflowRuntime
The runtime instance that manages the process instance. WorkflowRuntime
actionParameter
String
Additional action parameter value. ActionDefinitionReference.ActionParameter
public Task ExecuteActionAsync(string name, ProcessInstance processInstance, WorkflowRuntime runtime, string actionParameter, CancellationToken token) #
Executes an action asynchronously.

Parameters

Name
Type
Description
name
String
Name of the action to execute.
processInstance
ProcessInstance
The process instance from which the action is executed. ProcessInstance
runtime
WorkflowRuntime
The runtime instance that manages the process instance. WorkflowRuntime
actionParameter
String
Additional action parameter value. ActionDefinitionReference.ActionParameter
token
CancellationToken
Cancellation token.

Returns

Type
Description
Task
A task that represents the asynchronous operation.
public bool ExecuteCondition(string name, ProcessInstance processInstance, WorkflowRuntime runtime, string actionParameter) #
Executes a condition and returns the result.

Parameters

Name
Type
Description
name
String
Name of the condition to check.
processInstance
ProcessInstance
The process instance from which the condition is checked. ProcessInstance
runtime
WorkflowRuntime
The runtime instance that manages the process instance. WorkflowRuntime
actionParameter
String
Additional condition parameter value. ActionDefinitionReference.ActionParameter

Returns

Type
Description
Boolean
true if the condition evaluates to true; otherwise, false.
public Task<bool> ExecuteConditionAsync(string name, ProcessInstance processInstance, WorkflowRuntime runtime, string actionParameter, CancellationToken token) #
Executes a condition asynchronously and returns the result.

Parameters

Name
Type
Description
name
String
Name of the condition to check.
processInstance
ProcessInstance
The process instance from which the condition is checked. ProcessInstance
runtime
WorkflowRuntime
The runtime instance that manages the process instance. WorkflowRuntime
actionParameter
String
Additional condition parameter value. ActionDefinitionReference.ActionParameter
token
CancellationToken
Cancellation token.

Returns

Type
Description
Task<Boolean>
A task that resolves to true if the condition evaluates to true; otherwise, false.
public bool IsActionAsync(string name, string schemeCode) #
Checks whether an action should be executed asynchronously.

Parameters

Name
Type
Description
name
String
Name of the action.
schemeCode
String
Code of the scheme that the action belongs to.

Returns

Type
Description
Boolean
true if the action is asynchronous; otherwise, false.
public bool IsConditionAsync(string name, string schemeCode) #
Checks whether a condition should be evaluated asynchronously.

Parameters

Name
Type
Description
name
String
Name of the condition.
schemeCode
String
Code of the scheme that the condition belongs to.

Returns

Type
Description
Boolean
true if the condition is asynchronous; otherwise, false.
public List<string> GetActions(string schemeCode, NamesSearchType namesSearchType) #
Returns action names for a scheme.

Parameters

Name
Type
Description
schemeCode
String
Code of the scheme for which action names are requested.
namesSearchType
NamesSearchType
The name selection strategy.

Returns

Type
Description
List<String>
A list of action names.
public List<string> GetConditions(string schemeCode, NamesSearchType namesSearchType) #
Returns condition names for a scheme.

Parameters

Name
Type
Description
schemeCode
String
Code of the scheme for which condition names are requested.
namesSearchType
NamesSearchType
The name selection strategy.

Returns

Type
Description
List<String>
A list of condition names.

Remarks

The wrapper evaluates the predicate supplied to the constructor on every method call. When the predicate returns false, the call is forwarded unchanged to the configured provider. When it returns true, the configured provider is bypassed and the call is delegated to EmptyWorkflowActionProvider.Value. Disabling the wrapper does not modify the configured provider.

While disabled, the wrapper exposes no action or condition names, synchronous actions perform no work, synchronous conditions return false, and asynchronous capability checks return false. Direct calls to the asynchronous execution methods are delegated to EmptyWorkflowActionProvider and throw NotImplementedException.