<#@ template language="C#" inherits="ActionTemplate" visibility="internal" linePragmas="false" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Core" #>
<#@ include file="Snippets/Index.tt" once="true" #>
/// <summary>
/// Assigns an evaluated expression, other variable, or literal value to one or more variables.
/// </summary>
internal sealed class <#= this.Name #>Executor(FormulaSession session) : ActionExecutor(id: "<#= this.Id #>", session)
{
    // <inheritdoc />
    protected override async ValueTask<object?> ExecuteAsync(IWorkflowContext context, CancellationToken cancellationToken)
    {<# int index = 0;
        foreach (var assignment in this.Model.Assignments) 
        {
            // Separate assigments with a blank line for readability
            if (index > 0)
            {#>
              <#
            }
            ++index;
            EvaluateValueExpression(assignment.Value, $"evaluatedValue{index}");
            AssignVariable(assignment.Variable, $"evaluatedValue{index}");
        } 
     #>
        return default;
   }
}