# Class TriggerDefinition OptimaJet.Workflow.Core.Model.TriggerDefinition Represents a transition trigger assigned to [TransitionDefinition.Trigger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) in a process scheme. Namespace: [OptimaJet.Workflow.Core.Model](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/) ```csharp public class TriggerDefinition ``` ## Constructors `public TriggerDefinition(TriggerType type)` Initializes a new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) with `type`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `type` | `TriggerType` | The value to assign to [TriggerDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/). | ## Properties `[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(SystemStringEnumConverter))] public TriggerType Type { get; set; }` Gets or sets the [TriggerType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) that determines what causes the transition to be evaluated. `public string NameRef { get; }` Gets the name of the [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) or [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) associated with this trigger. `public CommandDefinition Command { get; set; }` Gets or sets the [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) associated with a [TriggerType.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger. `public TimerDefinition Timer { get; set; }` Gets or sets the [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) associated with a [TriggerType.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger. `public static TriggerDefinition Auto { get; }` Gets a new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) whose [TriggerDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) is [TriggerType.Auto](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/). ## Methods `public static TriggerDefinition Create(string type)` Creates a [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) by parsing `type` as a [TriggerType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) value. ### Parameters | Name | Type | Description | | --- | --- | --- | | `type` | `String` | The string representation of a [TriggerType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) value. | ### Returns | Type | Description | | --- | --- | | `TriggerDefinition` | A new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) with the parsed [TriggerDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/). | ### Exceptions | Type | Description | | --- | --- | | `ArgumentNullException` | `type` is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). | | `ArgumentException` | `type` is empty, contains only white-space characters, or cannot be parsed as a [TriggerType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) value. | | `OverflowException` | `type` represents a numeric value outside the range of the underlying type. | ### Remarks Name parsing is case-sensitive. `public static TriggerDefinition CreateTimerTrigger(TimerDefinition timer)` Creates a [TriggerType.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger associated with `timer`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `timer` | `TimerDefinition` | The [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) to associate with the trigger. | ### Returns | Type | Description | | --- | --- | | `TriggerDefinition` | A new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) associated with `timer`. | `public static TriggerDefinition CreateCommandTrigger(CommandDefinition command)` Creates a [TriggerType.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger associated with `command`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `command` | `CommandDefinition` | The [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) to associate with the trigger. | ### Returns | Type | Description | | --- | --- | | `TriggerDefinition` | A new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) associated with `command`. | `public TriggerDefinition Clone()` Creates a copy of this trigger and clones its associated [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) and [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) instances when present. ### Returns | Type | Description | | --- | --- | | `TriggerDefinition` | A new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) containing the copied trigger data. | `public TriggerDefinition Clone(List commandDefinitions, List timerDefinitions)` Creates a copy of this trigger and rebinds [TriggerDefinition.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) and [TriggerDefinition.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) by matching command and timer names in `commandDefinitions` and `timerDefinitions`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `commandDefinitions` | `List` | The [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) instances used to replace [TriggerDefinition.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/). | | `timerDefinitions` | `List` | The [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) instances used to replace [TriggerDefinition.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/). | ### Returns | Type | Description | | --- | --- | | `TriggerDefinition` | A new [TriggerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) bound to matching definitions from `commandDefinitions` and `timerDefinitions`. | ### Exceptions | Type | Description | | --- | --- | | `ArgumentNullException` | [TriggerDefinition.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) is assigned and `commandDefinitions` is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null), or [TriggerDefinition.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) is assigned and `timerDefinitions` is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). | | `InvalidOperationException` | A required collection contains no definition with the matching command or timer name. | [Previous Translation](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/Translation/) [Next TriggerType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/)