# Interface ITransitionCommandBuilder OptimaJet.Workflow.Core.Model.Builder.ITransitionCommandBuilder Represents a builder for configuring the actor-based authorization restrictions in [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) for a command-triggered transition. Namespace: [OptimaJet.Workflow.Core.Model.Builder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/) ```csharp public interface ITransitionCommandBuilder : ITransitionBuilder, IProcessDefinitionBuilder ``` ## Type Hierarchy - ITransitionCommandBuilder Current type - Base interfaces - [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) - [IProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IProcessDefinitionBuilder/) ## Methods `ITransitionCommandBuilder CreateRestriction(ActorDefinition actorDefinition, RestrictionType restrictionType)` Adds an actor-based authorization restriction to [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) for the current command-triggered transition. ### Parameters | Name | Type | Description | | --- | --- | --- | | `actorDefinition` | `ActorDefinition` | The [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) whose [ActorDefinition.Rule](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) is evaluated for the [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/). | | `restrictionType` | `RestrictionType` | The [RestrictionType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) that determines how the result of [ActorDefinition.Rule](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) affects authorization. | ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | ### Exceptions | Type | Description | | --- | --- | | `TransitionRestrictionAlreadyExistsException` | A [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) associated with `actorDefinition` already exists on the current transition. | `ITransitionCommandBuilder CreateOrUpdateRestriction(ActorDefinition actorDefinition, RestrictionType restrictionType)` Adds an actor-based authorization restriction to [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) for the current command-triggered transition, or changes the [RestrictionDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) of the restriction already associated with `actorDefinition`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `actorDefinition` | `ActorDefinition` | The [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) whose [ActorDefinition.Rule](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) is evaluated for the [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/). | | `restrictionType` | `RestrictionType` | The [RestrictionType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) to assign to the new or existing [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/). | ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | `ITransitionCommandBuilder UpdateRestriction(ActorDefinition actorDefinition, RestrictionType restrictionType)` Changes the [RestrictionDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) of the restriction associated with `actorDefinition`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `actorDefinition` | `ActorDefinition` | The [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) associated with the [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) to update. | | `restrictionType` | `RestrictionType` | The new [RestrictionType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/). | ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | ### Exceptions | Type | Description | | --- | --- | | `TransitionRestrictionNotFoundException` | No [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) associated with `actorDefinition` exists on the current transition. | `ITransitionCommandBuilder DeleteRestriction(ActorDefinition actorDefinition)` Removes any actor-based authorization [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) associated with `actorDefinition` from the current command-triggered transition. ### Parameters | Name | Type | Description | | --- | --- | --- | | `actorDefinition` | `ActorDefinition` | The [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) associated with the [RestrictionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionDefinition/) to remove. | ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | `ITransitionCommandBuilder ConcatAllowByAnd()` Sets [TransitionDefinition.AllowConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.And](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/) for the current transition; when [RestrictionType.Allow](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) restrictions are present, each must match the workflow participant identity being authorized. ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | `ITransitionCommandBuilder ConcatAllowByOr()` Sets [TransitionDefinition.AllowConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.Or](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/) for the current transition; when [RestrictionType.Allow](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) restrictions are present, at least one must match the workflow participant identity being authorized. ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | `ITransitionCommandBuilder ConcatRestrictByAnd()` Sets [TransitionDefinition.RestrictConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.And](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/) for the current transition; when [RestrictionType.Restrict](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) restrictions are present, they deny a workflow participant identity only if each restriction matches. ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | `ITransitionCommandBuilder ConcatRestrictByOr()` Sets [TransitionDefinition.RestrictConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.Or](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/) for the current transition; when [RestrictionType.Restrict](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/RestrictionType/) restrictions are present, they deny a workflow participant identity if at least one restriction matches. ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | The current [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) instance. | [Previous ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) [Next ITransitionConditionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionConditionBuilder/)