File: GeneratedFunctionExecutor.g.cs
Project: src\playground\AzureFunctionsEndToEnd\AzureFunctionsEndToEnd.Functions\AzureFunctionsEndToEnd.Functions.csproj (AzureFunctionsEndToEnd.Functions)
// <auto-generated/>
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Context.Features;
using Microsoft.Azure.Functions.Worker.Invocation;
namespace AzureFunctionsEndToEnd.Functions
{
    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Azure.Functions.Worker.Sdk.Generators", "1.3.5.0")]
    internal class DirectFunctionExecutor : global::Microsoft.Azure.Functions.Worker.Invocation.IFunctionExecutor
    {
        private readonly global::Microsoft.Azure.Functions.Worker.IFunctionActivator _functionActivator;
        private readonly Dictionary<string, Type> types = new Dictionary<string, Type>()
        {
            { "AzureFunctionsEndToEnd.Functions.MyAzureBlobTrigger", Type.GetType("AzureFunctionsEndToEnd.Functions.MyAzureBlobTrigger, AzureFunctionsEndToEnd.Functions, Version=42.42.42.42, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51") },
            { "AzureFunctionsEndToEnd.Functions.MyAzureQueueTrigger", Type.GetType("AzureFunctionsEndToEnd.Functions.MyAzureQueueTrigger, AzureFunctionsEndToEnd.Functions, Version=42.42.42.42, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51") },
            { "AspirePlusFunctions.Functions.MyEventHubTrigger", Type.GetType("AspirePlusFunctions.Functions.MyEventHubTrigger, AzureFunctionsEndToEnd.Functions, Version=42.42.42.42, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51") },
            { "AzureFunctionsEndToEnd.Functions.MyHttpTrigger", Type.GetType("AzureFunctionsEndToEnd.Functions.MyHttpTrigger, AzureFunctionsEndToEnd.Functions, Version=42.42.42.42, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51") }
        };
 
        public DirectFunctionExecutor(global::Microsoft.Azure.Functions.Worker.IFunctionActivator functionActivator)
        {
            _functionActivator = functionActivator ?? throw new global::System.ArgumentNullException(nameof(functionActivator));
        }
 
        /// <inheritdoc/>
        public async global::System.Threading.Tasks.ValueTask ExecuteAsync(global::Microsoft.Azure.Functions.Worker.FunctionContext context)
        {
            var inputBindingFeature = context.Features.Get<global::Microsoft.Azure.Functions.Worker.Context.Features.IFunctionInputBindingFeature>();
            var inputBindingResult = await inputBindingFeature.BindFunctionInputAsync(context);
            var inputArguments = inputBindingResult.Values;
 
            if (string.Equals(context.FunctionDefinition.EntryPoint, "AzureFunctionsEndToEnd.Functions.MyAzureBlobTrigger.RunAsync", StringComparison.Ordinal))
            {
                var instanceType = types["AzureFunctionsEndToEnd.Functions.MyAzureBlobTrigger"];
                var i = _functionActivator.CreateInstance(instanceType, context) as global::AzureFunctionsEndToEnd.Functions.MyAzureBlobTrigger;
                context.GetInvocationResult().Value = await i.RunAsync((string)inputArguments[0], (global::Microsoft.Azure.Functions.Worker.FunctionContext)inputArguments[1]);
                return;
            }
            if (string.Equals(context.FunctionDefinition.EntryPoint, "AzureFunctionsEndToEnd.Functions.MyAzureQueueTrigger.Run", StringComparison.Ordinal))
            {
                var instanceType = types["AzureFunctionsEndToEnd.Functions.MyAzureQueueTrigger"];
                var i = _functionActivator.CreateInstance(instanceType, context) as global::AzureFunctionsEndToEnd.Functions.MyAzureQueueTrigger;
                i.Run((global::Azure.Storage.Queues.Models.QueueMessage)inputArguments[0]);
                return;
            }
            if (string.Equals(context.FunctionDefinition.EntryPoint, "AspirePlusFunctions.Functions.MyEventHubTrigger.Run", StringComparison.Ordinal))
            {
                var instanceType = types["AspirePlusFunctions.Functions.MyEventHubTrigger"];
                var i = _functionActivator.CreateInstance(instanceType, context) as global::AspirePlusFunctions.Functions.MyEventHubTrigger;
                i.Run((string[])inputArguments[0]);
                return;
            }
            if (string.Equals(context.FunctionDefinition.EntryPoint, "AzureFunctionsEndToEnd.Functions.MyHttpTrigger.Run", StringComparison.Ordinal))
            {
                var instanceType = types["AzureFunctionsEndToEnd.Functions.MyHttpTrigger"];
                var i = _functionActivator.CreateInstance(instanceType, context) as global::AzureFunctionsEndToEnd.Functions.MyHttpTrigger;
                context.GetInvocationResult().Value = i.Run((global::Microsoft.AspNetCore.Http.HttpRequest)inputArguments[0]);
                return;
            }
        }
    }
 
    /// <summary>
    /// Extension methods to enable registration of the custom <see cref="IFunctionExecutor"/> implementation generated for the current worker.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Azure.Functions.Worker.Sdk.Generators", "1.3.5.0")]
    public static class FunctionExecutorHostBuilderExtensions
    {
        ///<summary>
        /// Configures an optimized function executor to the invocation pipeline.
        ///</summary>
        public static IHostBuilder ConfigureGeneratedFunctionExecutor(this IHostBuilder builder)
        {
            return builder.ConfigureServices(s => 
            {
                s.AddSingleton<global::Microsoft.Azure.Functions.Worker.Invocation.IFunctionExecutor, DirectFunctionExecutor>();
            });
        }
    }
    /// <summary>
    /// Auto startup class to register the custom <see cref="IFunctionExecutor"/> implementation generated for the current worker.
    /// </summary>
    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Azure.Functions.Worker.Sdk.Generators", "1.3.5.0")]
    public class FunctionExecutorAutoStartup : global::Microsoft.Azure.Functions.Worker.IAutoConfigureStartup
    {
        /// <summary>
        /// Configures the <see cref="IHostBuilder"/> to use the custom <see cref="IFunctionExecutor"/> implementation generated for the current worker.
        /// </summary>
        /// <param name="hostBuilder">The <see cref="IHostBuilder"/> instance to use for service registration.</param>
        public void Configure(IHostBuilder hostBuilder)
        {
            hostBuilder.ConfigureGeneratedFunctionExecutor();
        }
    }
}