# Class ActiveDirectoryRuleProvider OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin.Providers.ActiveDirectoryRuleProvider Namespace: [OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin.Providers](https://api.workflowengine.io/active-directory-plugin/OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin.Providers/) ```csharp public class ActiveDirectoryRuleProvider : IWorkflowRuleProvider ``` ## Type Hierarchy - ActiveDirectoryRuleProvider Current type - Implemented interfaces - [IWorkflowRuleProvider](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/IWorkflowRuleProvider/) ## Constructors `public ActiveDirectoryRuleProvider(IActiveDirectoryMethods activeDirectoryMethods)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `activeDirectoryMethods` | `IActiveDirectoryMethods` | | ## Methods `public List 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](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/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` | 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` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.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](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) if `identityId` belongs to the set defined by the rule; otherwise, [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). | ### Remarks The runtime calls this method when [IWorkflowRuleProvider.IsCheckAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string) returns [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) for the same rule and scheme. `public Task 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` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.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` | A task whose result is [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) if `identityId` belongs to the set defined by the rule; otherwise, [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). | ### Remarks The runtime calls this method when [IWorkflowRuleProvider.IsCheckAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string) returns [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) for the same rule and scheme. `public IEnumerable 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` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.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` | 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)](https://learn.microsoft.com/dotnet/api/system.string). | ### Remarks The runtime calls this method when [IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string) returns [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) for the same rule and scheme. `public Task> 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` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.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` | 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)](https://learn.microsoft.com/dotnet/api/system.string). | ### Remarks The runtime calls this method when [IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string) returns [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) for the same rule and scheme. `public bool IsCheckAsync(string ruleName, string schemeCode)` Indicates whether the runtime should call [IWorkflowRuleProvider.CheckAsync(ProcessInstance, WorkflowRuntime, string, string, string, CancellationToken)](https://learn.microsoft.com/dotnet/api/system.string) instead of [IWorkflowRuleProvider.Check(ProcessInstance, WorkflowRuntime, string, string, string)](https://learn.microsoft.com/dotnet/api/system.string) for a rule. ### Parameters | Name | Type | Description | | --- | --- | --- | | `ruleName` | `String` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.string). | | `schemeCode` | `String` | The effective process scheme code used to resolve the rule. | ### Returns | Type | Description | | --- | --- | | `Boolean` | [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to use [IWorkflowRuleProvider.CheckAsync(ProcessInstance, WorkflowRuntime, string, string, string, CancellationToken)](https://learn.microsoft.com/dotnet/api/system.string); [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to use [IWorkflowRuleProvider.Check(ProcessInstance, WorkflowRuntime, string, string, string)](https://learn.microsoft.com/dotnet/api/system.string). | ### Remarks This choice is independent of the identity lookup mode returned by [IWorkflowRuleProvider.IsGetIdentitiesAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string). `public bool IsGetIdentitiesAsync(string ruleName, string schemeCode)` Indicates whether the runtime should call [IWorkflowRuleProvider.GetIdentitiesAsync(ProcessInstance, WorkflowRuntime, string, string, CancellationToken)](https://learn.microsoft.com/dotnet/api/system.string) instead of [IWorkflowRuleProvider.GetIdentities(ProcessInstance, WorkflowRuntime, string, string)](https://learn.microsoft.com/dotnet/api/system.string) for a rule. ### Parameters | Name | Type | Description | | --- | --- | --- | | `ruleName` | `String` | The name of a rule advertised by [IWorkflowRuleProvider.GetRules(string, NamesSearchType)](https://learn.microsoft.com/dotnet/api/system.string). | | `schemeCode` | `String` | The effective process scheme code used to resolve the rule. | ### Returns | Type | Description | | --- | --- | | `Boolean` | [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to use [IWorkflowRuleProvider.GetIdentitiesAsync(ProcessInstance, WorkflowRuntime, string, string, CancellationToken)](https://learn.microsoft.com/dotnet/api/system.string); [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to use [IWorkflowRuleProvider.GetIdentities(ProcessInstance, WorkflowRuntime, string, string)](https://learn.microsoft.com/dotnet/api/system.string). | ### Remarks This choice is independent of the rule-checking mode returned by [IWorkflowRuleProvider.IsCheckAsync(string, string)](https://learn.microsoft.com/dotnet/api/system.string). ## Fields `public const string ActiveDirectoryGroupRuleName = "ActiveDirectoryGroup"` [Previous ActiveDirectoryDesignerParameterFormatProvider](https://api.workflowengine.io/active-directory-plugin/OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin.Providers/ActiveDirectoryDesignerParameterFormatProvider/) [Next Constants](https://api.workflowengine.io/active-directory-plugin/OptimaJet.Workflow.Plugins.ActiveDirectoryPlugin.Providers/Constants/)