private static void BindOutputFromResult()

in src/RequestProcessor.cs [517:549]


        private static void BindOutputFromResult(InvocationResponse response, AzFunctionInfo functionInfo, IDictionary results)
        {
            if (functionInfo.DurableFunctionInfo.Type != DurableFunctionType.OrchestrationFunction)
            {
                // Set out binding data and return response to be sent back to host
                foreach (var (bindingName, bindingInfo) in functionInfo.OutputBindings)
                {
                    var outValue = results[bindingName];
                    var transformedValue = Utils.TransformOutBindingValueAsNeeded(bindingName, bindingInfo, outValue);
                    var dataToUse = transformedValue.ToTypedData();

                    // if one of the bindings is '$return' we need to set the ReturnValue
                    if (string.Equals(bindingName, AzFunctionInfo.DollarReturn, StringComparison.OrdinalIgnoreCase))
                    {
                        response.ReturnValue = dataToUse;
                        continue;
                    }

                    var paramBinding = new ParameterBinding()
                    {
                        Name = bindingName,
                        Data = dataToUse
                    };

                    response.OutputData.Add(paramBinding);
                }
            }

            if (functionInfo.DurableFunctionInfo.ProvidesForcedDollarReturnValue || FunctionInfoUtilities.hasAssistantSkillTrigger(functionInfo))
            {
                response.ReturnValue = results[AzFunctionInfo.DollarReturn].ToTypedData(isDurableData: true);
            }
        }