Assembly: OptimaJet.Workflow.Core

Class DeactivatedWorkflowRuleProvider

OptimaJet.Workflow.Core.Runtime.DeactivatedWorkflowRuleProvider

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

public sealed class DeactivatedWorkflowRuleProvider : IWorkflowRuleProvider

Type Hierarchy

Constructors

public DeactivatedWorkflowRuleProvider(IWorkflowRuleProvider activatedRuleProvider, Func<bool> getDisabled) #
Initializes a new dynamically switchable wrapper around a workflow rule provider.

Parameters

Name
Type
Description
activatedRuleProvider
IWorkflowRuleProvider
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 EmptyWorkflowRuleProvider.Value; a result of false selects activatedRuleProvider.

Methods

public List<string> GetRules(string schemeCode, NamesSearchType namesSearchType) #
Gets the rule names implemented by this provider for a process scheme.

Parameters

Name
Type
Description
schemeCode
String
The effective process scheme code used to resolve scheme-specific rules, or null when the caller has no process scheme context.
namesSearchType
NamesSearchType
The filtering mode. NamesSearchType.All includes rules excluded by provider-specific exclusion settings and is used for runtime rule resolution. NamesSearchType.NotExcluded omits those rules, for example when the Designer builds its list of available rules.

Returns

Type
Description
List<String>
A non-null list of rule names implemented by this provider for the requested scheme and filtering mode.
public bool Check(ProcessInstance processInstance, WorkflowRuntime runtime, string identityId, string ruleName, string parameter) #
Determines whether a workflow participant identity satisfies a rule.

Parameters

Name
Type
Description
processInstance
ProcessInstance
The process instance whose state and parameters provide the evaluation context.
runtime
WorkflowRuntime
The workflow runtime executing the evaluation.
identityId
String
The application-defined value identifying the workflow participant to evaluate, such as a login, user name, database identifier, or another identifier understood by the provider.
ruleName
String
parameter
String
The provider-defined rule parameter. During standard restriction evaluation, this is the value from ActorDefinition.Value after workflow substitutions have been applied.

Returns

Type
Description
Boolean
true if identityId belongs to the set defined by the rule; otherwise, false.

Remarks

The runtime calls this method when IWorkflowRuleProvider.IsCheckAsync(string, string) returns false for the same rule and scheme.
public Task<bool> CheckAsync(ProcessInstance processInstance, WorkflowRuntime runtime, string identityId, string ruleName, string parameter, CancellationToken token) #
Asynchronously determines whether a workflow participant identity satisfies a rule.

Parameters

Name
Type
Description
processInstance
ProcessInstance
The process instance whose state and parameters provide the evaluation context.
runtime
WorkflowRuntime
The workflow runtime executing the evaluation.
identityId
String
The application-defined value identifying the workflow participant to evaluate, such as a login, user name, database identifier, or another identifier understood by the provider.
ruleName
String
parameter
String
The provider-defined rule parameter. During standard restriction evaluation, this is the value from ActorDefinition.Value after workflow substitutions have been applied.
token
CancellationToken
The token supplied by the current workflow operation to observe cancellation.

Returns

Type
Description
Task<Boolean>
A task whose result is true if identityId belongs to the set defined by the rule; otherwise, false.

Remarks

The runtime calls this method when IWorkflowRuleProvider.IsCheckAsync(string, string) returns true for the same rule and scheme.
public IEnumerable<string> GetIdentities(ProcessInstance processInstance, WorkflowRuntime runtime, string ruleName, string parameter) #
Gets all workflow participant identities that satisfy a rule.

Parameters

Name
Type
Description
processInstance
ProcessInstance
The process instance whose state and parameters provide the lookup context.
runtime
WorkflowRuntime
The workflow runtime executing the lookup.
ruleName
String
parameter
String
The provider-defined rule parameter. During standard actor calculation, this is the value from ActorDefinition.Value after workflow substitutions have been applied.

Returns

Type
Description
IEnumerable<String>
A non-null sequence of application-defined workflow participant identities. Each value must use the same identity representation accepted by IWorkflowRuleProvider.Check(ProcessInstance, WorkflowRuntime, string, string, string).

Remarks

The runtime calls this method when IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string) returns false for the same rule and scheme.
public Task<IEnumerable<string>> GetIdentitiesAsync(ProcessInstance processInstance, WorkflowRuntime runtime, string ruleName, string parameter, CancellationToken token) #
Asynchronously gets all workflow participant identities that satisfy a rule.

Parameters

Name
Type
Description
processInstance
ProcessInstance
The process instance whose state and parameters provide the lookup context.
runtime
WorkflowRuntime
The workflow runtime executing the lookup.
ruleName
String
parameter
String
The provider-defined rule parameter. During standard actor calculation, this is the value from ActorDefinition.Value after workflow substitutions have been applied.
token
CancellationToken
The token supplied by the current workflow operation to observe cancellation.

Returns

Type
Description
Task<String>
A task whose result is a non-null sequence of application-defined workflow participant identities. Each value must use the same identity representation accepted by IWorkflowRuleProvider.Check(ProcessInstance, WorkflowRuntime, string, string, string).

Remarks

The runtime calls this method when IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string) returns true for the same rule and scheme.
public bool IsCheckAsync(string ruleName, string schemeCode) #

Parameters

Name
Type
Description
ruleName
String
schemeCode
String
The effective process scheme code used to resolve the rule.

Returns

Remarks

This choice is independent of the identity lookup mode returned by IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string).
public bool IsGetIdentitiesAsync(string ruleName, string schemeCode) #

Parameters

Name
Type
Description
ruleName
String
schemeCode
String
The effective process scheme code used to resolve the rule.

Returns

Remarks

This choice is independent of the rule-checking mode returned by IWorkflowRuleProvider.IsCheckAsync(string, string).

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 EmptyWorkflowRuleProvider.Value. Disabling the wrapper does not modify the configured provider.

While disabled, the wrapper exposes no rule names, synchronous rule checks return false, identity lookup returns an empty sequence, and asynchronous capability checks return false. Direct calls to the asynchronous check or identity lookup methods are delegated to EmptyWorkflowRuleProvider and throw NotImplementedException.