<#+ void EvaluateValueExpression(ValueExpression expression, string targetVariable) => EvaluateValueExpression(expression, targetVariable); void EvaluateValueExpression(ValueExpression expression, string targetVariable) { if (expression is null) {#> <#= GetTypeAlias() #>? <#= targetVariable #> = null;<#+ } else if (expression.IsLiteral) {#> <#= GetTypeAlias() #>? <#= targetVariable #> = <#= FormatDataValue(expression.LiteralValue) #>;<#+ } else if (expression.IsVariableReference && expression.VariableReference.SegmentCount == 2) {#> <#= GetTypeAlias() #>? <#= targetVariable #> = await context.ReadStateAsync<<#= GetTypeAlias() #>>(key: "<#= expression.VariableReference.VariableName #>", scopeName: "<#= expression.VariableReference.NamespaceAlias #>").ConfigureAwait(false);<#+ } else if (expression.IsVariableReference) {#> <#= GetTypeAlias() #>? <#= targetVariable #> = await context.EvaluateValueAsync<<#= GetTypeAlias() #>>(<#= FormatStringValue(expression.VariableReference.ToString()) #>).ConfigureAwait(false);<#+ } else {#> <#= GetTypeAlias() #>? <#= targetVariable #> = await context.EvaluateValueAsync<<#= GetTypeAlias() #>>(<#= FormatStringValue(expression.ExpressionText) #>).ConfigureAwait(false);<#+ } } #>