Class AggregatingRuleProvider
OptimaJet.Workflow.Core.Runtime.AggregatingRuleProvider
Combines registered IWorkflowRuleProvider implementations into one provider and resolves duplicate rule names by registration priority.
Namespace: OptimaJet.Workflow.Core.Runtime
public class AggregatingRuleProvider : BaseAggregatingProvider<IWorkflowRuleProvider>, IWorkflowRuleProviderType Hierarchy
- BaseAggregatingProvider<IWorkflowRuleProvider>
- AggregatingRuleProvider Current type
- Implemented interfaces
- AggregatingRuleProvider Current type
Methods
public List<string> GetRules(string schemeCode, NamesSearchType namesSearchType) #Parameters
schemeCodeStringnamesSearchTypeNamesSearchTypeReturns
List<String>Remarks
namesSearchType is passed through unchanged. When a name occurs more than once, its first occurrence is retained.public bool Check(ProcessInstance processInstance, WorkflowRuntime runtime, string identityId, string ruleName, string parameter) #Parameters
processInstanceProcessInstanceruntimeWorkflowRuntimeidentityIdStringruleNameStringparameterStringReturns
Exceptions
NotImplementedExceptionRemarks
public virtual Task<bool> CheckAsync(ProcessInstance processInstance, WorkflowRuntime runtime, string identityId, string ruleName, string parameter, CancellationToken token) #Parameters
processInstanceProcessInstanceruntimeWorkflowRuntimeidentityIdStringruleNameStringparameterStringtokenCancellationTokenReturns
Exceptions
NotImplementedExceptionRemarks
public IEnumerable<string> GetIdentities(ProcessInstance processInstance, WorkflowRuntime runtime, string ruleName, string parameter) #Parameters
processInstanceProcessInstanceruntimeWorkflowRuntimeruleNameStringparameterStringReturns
IEnumerable<String>Exceptions
NotImplementedExceptionRemarks
public virtual Task<IEnumerable<string>> GetIdentitiesAsync(ProcessInstance processInstance, WorkflowRuntime runtime, string ruleName, string parameter, CancellationToken token) #Parameters
processInstanceProcessInstanceruntimeWorkflowRuntimeruleNameStringparameterStringtokenCancellationTokenReturns
Task<String>Exceptions
NotImplementedExceptionRemarks
public bool IsCheckAsync(string ruleName, string schemeCode) #Parameters
ruleNameStringschemeCodeStringReturns
Exceptions
NotImplementedExceptionRemarks
public bool IsGetIdentitiesAsync(string ruleName, string schemeCode) #Parameters
ruleNameStringschemeCodeStringReturns
Exceptions
NotImplementedExceptionRemarks
Remarks
For a scheme, both global providers and providers registered specifically for that scheme are applicable. Providers are searched from the most recently registered to the earliest, regardless of registration scope. The first provider that advertises a rule name owns that name.
The owning provider independently determines whether rule checking and workflow participant identity lookup are synchronous or asynchronous. Calling the opposite method throws NotImplementedException; the aggregator does not fall back to an older provider that advertises the same rule in the requested execution mode.
AggregatingRuleProvider.GetRules(string, NamesSearchType) is a catalog operation rather than a dispatch operation. It combines names from every applicable provider in earliest-to-latest registration order and removes duplicates, so its result order does not represent dispatch priority.