<#@ template language="C#" inherits="ActionTemplate" visibility="internal" linePragmas="false" #> <#@ output extension=".cs" #> <#@ assembly name="System.Core" #> <#@ import namespace="Microsoft.Agents.AI.Workflows.Declarative.ObjectModel" #> <#@ import namespace="Microsoft.Agents.ObjectModel" #> <#@ include file="Snippets/AssignVariableTemplate.tt" once="true" #> <#@ include file="Snippets/EvaluateBoolExpressionTemplate.tt" once="true" #> /// /// Conditional branching similar to an if / elseif / elseif / else chain. /// internal sealed class <#= this.Name #>Executor(FormulaSession session) : ActionExecutor(id: "<#= this.Id #>", session) { // protected override async ValueTask ExecuteAsync(IWorkflowContext context, CancellationToken cancellationToken) {<# for (int index = 0; index < this.Model.Conditions.Length; ++index) { ConditionItem conditionItem = this.Model.Conditions[index]; if (conditionItem.Condition is null) { continue; // Skip if no condition is defined } EvaluateBoolExpression(conditionItem.Condition, $"condition{index}");#> if (condition<#= index #>) { return "<#= ConditionGroupExecutor.Steps.Item(this.Model, conditionItem)#>"; } <# } #> return "<#= ConditionGroupExecutor.Steps.Else(this.Model)#>"; } }