<#@ template language="C#" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="Amazon.Lambda.Annotations.SourceGenerator.Extensions" #> <# var parameters = string.Join(", ", _model.LambdaMethod.Parameters .Select(p => { // Pass the same context parameter for ILambdaContext that comes from the generated method. if (p.Type.FullName == TypeFullNames.ILambdaContext) { return "__context__"; } return p.Name; })); foreach (var parameter in _model.LambdaMethod.Parameters) { if (parameter.Attributes.Any(att => att.Type.FullName == TypeFullNames.FromServiceAttribute)) { #> var <#= parameter.Name #> = scope.ServiceProvider.GetRequiredService<<#= parameter.Type.FullName #>>(); <# } } if (_model.LambdaMethod.ReturnsVoid) { #> <#= _model.LambdaMethod.ContainingType.Name.ToCamelCase() #>.<#= _model.LambdaMethod.Name #>(<#= parameters #>); <# } else if (_model.LambdaMethod.ReturnsVoidTask) { #> await <#= _model.LambdaMethod.ContainingType.Name.ToCamelCase() #>.<#= _model.LambdaMethod.Name #>(<#= parameters #>); <# } else { #> return <#= _model.LambdaMethod.ReturnsGenericTask ? "await " : "" #><#= _model.LambdaMethod.ContainingType.Name.ToCamelCase() #>.<#= _model.LambdaMethod.Name #>(<#= parameters #>); <# } #>