Assembly: OptimaJet.Workflow.Core

Class WorkflowPluginWithRuleProvider<EnumActions, EnumActionsAsync, EnumConditions, EnumConditionsAsync, EnumRules, EnumRulesAsync>

OptimaJet.Workflow.Plugins.CustomWorkflowProviders.WorkflowPluginWithRuleProvider<EnumActions, EnumActionsAsync, EnumConditions, EnumConditionsAsync, EnumRules, EnumRulesAsync>

public abstract class WorkflowPluginWithRuleProvider<EnumActions, EnumActionsAsync, EnumConditions, EnumConditionsAsync, EnumRules, EnumRulesAsync> : WorkflowPlugin<EnumActions, EnumActionsAsync, EnumConditions, EnumConditionsAsync>, ICustomMixProvider, ICustomWorkflowActionProvider, IWorkflowActionProvider, IDisableProvider, ICustomDesignerParameterFormatProvider, IDesignerParameterFormatProvider, ICustomActivityProvider, ICustomConditionProvider, IWorkflowPlugin, ICustomWorkflowRuleProvider, IWorkflowRuleProvider where EnumActions : struct where EnumActionsAsync : struct where EnumConditions : struct where EnumConditionsAsync : struct where EnumRules : struct where EnumRulesAsync : struct

Type Hierarchy

Properties

protected Dictionary<EnumRules, ExcludeRule> RulesExcludeRule { get; } #
protected Dictionary<EnumRulesAsync, ExcludeRule> RulesAsyncExcludeRule { get; } #
protected Dictionary<EnumRules, CheckDelegate> RulesCheck { get; } #
protected Dictionary<EnumRulesAsync, CheckAsyncDelegate> RulesCheckAsync { get; } #
protected Dictionary<EnumRules, GetIdentitiesDelegate> RulesGetIdentities { get; } #
protected Dictionary<EnumRulesAsync, GetIdentitiesAsyncDelegate> RulesGetIdentitiesAsync { get; } #

Methods

protected virtual List<EnumRules> GetRules(NamesSearchType namesSearchType) #

Parameters

Name
Type
Description
namesSearchType
NamesSearchType

Returns

Type
Description
List<EnumRules>
protected virtual List<EnumRulesAsync> GetRulesAsync(NamesSearchType namesSearchType) #

Parameters

Name
Type
Description
namesSearchType
NamesSearchType

Returns

Type
Description
List<EnumRulesAsync>
public virtual 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 virtual 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 virtual 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 virtual 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 virtual 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 virtual 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 virtual 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).
public void ExcludeRule(string ruleName, ExcludeRule excludeRule = null) #

Parameters

Name
Type
Description
ruleName
String
excludeRule
ExcludeRule
public bool ValidateRules(out List<string> rules, bool withExceptions = false) #

Parameters

Name
Type
Description
rules
List<String>
withExceptions
Boolean

Returns

Type
Description
Boolean
public bool ValidateRulesAsync(out List<string> rulesAsync, bool withExceptions = false) #

Parameters

Name
Type
Description
rulesAsync
List<String>
withExceptions
Boolean

Returns

Type
Description
Boolean
public void OverrideRuleProvider(IWorkflowRuleProvider workflowRuleProvider) #
Sets a custom workflow rule provider for the plugin, replacing the default implementation for resolving rules.

Parameters

Name
Type
Description
workflowRuleProvider
IWorkflowRuleProvider
The IWorkflowRuleProvider implementation to use for resolving workflow rules.