Full Code of davidfowl/uController for AI

main a144fb1b276e cached
47 files
427.6 KB
83.5k tokens
358 symbols
1 requests
Download .txt
Showing preview only (447K chars total). Download the full file or copy to clipboard to get everything.
Repository: davidfowl/uController
Branch: main
Commit: a144fb1b276e
Files: 47
Total size: 427.6 KB

Directory structure:
gitextract_a4yt5j7o/

├── .gitattributes
├── .github/
│   └── workflows/
│       └── ci.yaml
├── .gitignore
├── .vscode/
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── Directory.Build.props
├── GeneratedOutput/
│   └── RouteBuilderExtensions.g.cs
├── README.md
├── nuget.config
├── samples/
│   ├── .vscode/
│   │   ├── launch.json
│   │   └── tasks.json
│   ├── MapTodos.cs
│   ├── Program.cs
│   ├── Sample.csproj
│   ├── Wrapper.cs
│   └── appsettings.json
├── src/
│   └── uController.SourceGenerator/
│       ├── AnalyzerReleases.Shipped.md
│       ├── AnalyzerReleases.Unshipped.md
│       ├── AwaitableInfo.cs
│       ├── CodeGenerationTypes.cs
│       ├── HttpModel.cs
│       ├── MinimalCodeGenerator.cs
│       ├── Reflection/
│       │   ├── MetadataLoadContext.cs
│       │   ├── RoslynAssembly.cs
│       │   ├── RoslynConstructorInfo.cs
│       │   ├── RoslynCustomAttributeData.cs
│       │   ├── RoslynExtensions.cs
│       │   ├── RoslynFieldInfo.cs
│       │   ├── RoslynMemberInfo.cs
│       │   ├── RoslynMethodInfo.cs
│       │   ├── RoslynParameterInfo.cs
│       │   ├── RoslynPropertyInfo.cs
│       │   ├── RoslynType.cs
│       │   └── SharedUtilities.cs
│       ├── ReflectionExtensions.cs
│       ├── RoutePattern.cs
│       ├── WellKnownTypes.cs
│       ├── uController.SourceGenerator.csproj
│       └── uControllerGenerator.cs
├── test/
│   └── uController.SourceGenerator.Tests/
│       ├── IntegrationTests.cs
│       ├── SharedTypes.cs
│       ├── SourceKey.cs
│       ├── Usings.cs
│       └── uController.SourceGenerator.Tests.csproj
├── uController.sln
└── version.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
*.doc  diff=astextplain
*.DOC	diff=astextplain
*.docx	diff=astextplain
*.DOCX	diff=astextplain
*.dot	diff=astextplain
*.DOT	diff=astextplain
*.pdf	diff=astextplain
*.PDF	diff=astextplain
*.rtf	diff=astextplain
*.RTF	diff=astextplain

*.jpg  	binary
*.png 	binary
*.gif 	binary

*.cs text=auto diff=csharp 
*.vb text=auto
*.resx text=auto
*.c text=auto
*.cpp text=auto
*.cxx text=auto
*.h text=auto
*.hxx text=auto
*.py text=auto
*.rb text=auto
*.java text=auto
*.html text=auto
*.htm text=auto
*.css text=auto
*.scss text=auto
*.sass text=auto
*.less text=auto
*.js text=auto
*.lisp text=auto
*.clj text=auto
*.sql text=auto
*.php text=auto
*.lua text=auto
*.m text=auto
*.asm text=auto
*.erl text=auto
*.fs text=auto
*.fsx text=auto
*.hs text=auto

*.csproj text=auto
*.vbproj text=auto
*.fsproj text=auto
*.dbproj text=auto
*.sln text=auto eol=crlf

*.sh eol=lf

================================================
FILE: .github/workflows/ci.yaml
================================================
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v1

    - name: Setup .NET Core SDK
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 7.0.x
        dotnet-quality: 'ga'

    - uses: aarnott/nbgv@v0.4.0
      with:
        setAllVars: true
     
    - name: dotnet build
      run: dotnet build uController.sln -c Release    

    - name: dotnet test
      run: dotnet test uController.sln -c Release --no-build

    - name: dotnet pack
      run: dotnet pack uController.sln -c Release --no-build --include-source --include-symbols

    - name: setup nuget
      if: github.event_name == 'push' && github.ref == 'refs/heads/main'
      uses: NuGet/setup-nuget@v1.0.5
      with:
        nuget-version: latest

    - name: Set API key
      if: github.event_name == 'push' && github.ref == 'refs/heads/main'
      run: nuget setapikey ${{ secrets.FEEDZ_TOKEN }} -Config nuget.config -Source https://f.feedz.io/davidfowl/ucontroller/nuget/index.json

    - name: Set symbols API key
      if: github.event_name == 'push' && github.ref == 'refs/heads/main'
      run: nuget setapikey ${{ secrets.FEEDZ_TOKEN }} -Config nuget.config -Source https://f.feedz.io/davidfowl/ucontroller/symbols

    - name: push packages
      if: github.event_name == 'push' && github.ref == 'refs/heads/main'
      run: dotnet nuget push **/*.nupkg -s https://f.feedz.io/davidfowl/ucontroller/nuget/index.json -ss https://f.feedz.io/davidfowl/ucontroller/symbols --skip-duplicate


================================================
FILE: .gitignore
================================================
[Oo]bj/
[Bb]in/
TestResults/
.nuget/
*.sln.ide/
_ReSharper.*/
.idea/
packages/
artifacts/
PublishProfiles/
.vs/
*.user
*.suo
*.cache
*.docstates
_ReSharper.*
nuget.exe
*net45.csproj
*net451.csproj
*k10.csproj
*.psess
*.vsp
*.pidb
*.userprefs
*DS_Store
*.ncrunchsolution
*.*sdf
*.ipch
*.swp
*~
.build/
.testPublish/
launchSettings.json
BenchmarkDotNet.Artifacts/
BDN.Generated/
binaries/
global.json
korebuild-lock.txt


================================================
FILE: .vscode/launch.json
================================================
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/test/uController.SourceGenerator.Tests/bin/Debug/net7.0/uController.SourceGenerator.Tests.dll",
            "args": [],
            "cwd": "${workspaceFolder}/test/uController.SourceGenerator.Tests",
            "console": "internalConsole",
            "stopAtEntry": false
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach"
        }
    ]
}

================================================
FILE: .vscode/settings.json
================================================
{
    "dotnet.defaultSolution": "uController.sln"
}

================================================
FILE: .vscode/tasks.json
================================================
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/test/uController.SourceGenerator.Tests/uController.SourceGenerator.Tests.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "type": "process",
            "args": [
                "publish",
                "${workspaceFolder}/test/uController.SourceGenerator.Tests/uController.SourceGenerator.Tests.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "run",
                "--project",
                "${workspaceFolder}/test/uController.SourceGenerator.Tests/uController.SourceGenerator.Tests.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}

================================================
FILE: Directory.Build.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
    <NoWarn>$(NoWarn);NU5105</NoWarn>
    <RepositoryUrl>https://github.com/davidfowl/uController</RepositoryUrl>
    <PackageProjectUrl>https://github.com/davidfowl/uController</PackageProjectUrl>
    <PackageReleaseNotes>https://github.com/davidfowl/uController/releases</PackageReleaseNotes>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <RepositoryType>git</RepositoryType>
    <PackageTags>cloud API REST microservice web</PackageTags>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Nerdbank.GitVersioning" Version="3.5.119" PrivateAssets="All" />
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
  </ItemGroup>
</Project>

================================================
FILE: GeneratedOutput/RouteBuilderExtensions.g.cs
================================================

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

#if NET7_0_OR_GREATER
using System.Diagnostics;
using System.Reflection;
using Microsoft.AspNetCore.Routing.Patterns;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Primitives;

using MetadataPopulator = System.Action<System.Delegate, Microsoft.AspNetCore.Builder.EndpointBuilder>;
using RequestDelegateFactoryFunc = System.Func<System.Delegate, Microsoft.AspNetCore.Builder.EndpointBuilder, Microsoft.AspNetCore.Http.RequestDelegate>;

namespace Microsoft.AspNetCore.Builder
{
    internal record SourceKey(string Path, int Line);
}

internal static class GeneratedRouteBuilderExtensions
{
    private static readonly string[] GetVerb = new[] { HttpMethods.Get };
    private static readonly string[] PostVerb = new[] { HttpMethods.Post };
    private static readonly string[] PutVerb = new[]  { HttpMethods.Put };
    private static readonly string[] DeleteVerb = new[] { HttpMethods.Delete };
    private static readonly string[] PatchVerb = new[] { HttpMethods.Patch };

    private class GenericThunks<T>
    {
        public static readonly System.Collections.Generic.Dictionary<(string, int), (MetadataPopulator, RequestDelegateFactoryFunc)> map = new()
        {
            [(@"C:\dev\git\uController\samples\Program.cs", 19)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 19));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(T)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<T>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler());
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = handler();
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),


        };
    }

    private static readonly System.Collections.Generic.Dictionary<(string, int), (MetadataPopulator, RequestDelegateFactoryFunc)> map = new()
    {
            [(@"C:\dev\git\uController\samples\MapTodos.cs", 9)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\MapTodos.cs", 9));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(System.Collections.Generic.List<Todo>)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<TodoDbContext, System.Threading.Tasks.Task<System.Collections.Generic.List<Todo>>>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<TodoDbContext>> arg_dbServiceOrBodyResolver = (ispis?.IsService(typeof(TodoDbContext)) ?? false) ? ResolveService<TodoDbContext> : ResolveBody<TodoDbContext>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<TodoDbContext>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    var result = await handler(arg_db);
                    await httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_db));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\MapTodos.cs", 17)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\MapTodos.cs", 17));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Ok<Todo>>(del.Method, builder);
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.NotFound>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<TodoDbContext>> arg_dbServiceOrBodyResolver = (ispis?.IsService(typeof(TodoDbContext)) ?? false) ? ResolveService<TodoDbContext> : ResolveBody<TodoDbContext>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0), ic.GetArgument<TodoDbContext>(1)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return;
                    }
                    var result = await handler(arg_id, arg_db);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id, arg_db));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\MapTodos.cs", 29)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\MapTodos.cs", 29));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.NotFound>(del.Method, builder);
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.NoContent>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, Todo, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<Todo>> arg_todoServiceOrBodyResolver = (ispis?.IsService(typeof(Todo)) ?? false) ? ResolveService<Todo> : ResolveBody<Todo>;
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<TodoDbContext>> arg_dbServiceOrBodyResolver = (ispis?.IsService(typeof(TodoDbContext)) ?? false) ? ResolveService<TodoDbContext> : ResolveBody<TodoDbContext>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0), ic.GetArgument<Todo>(1), ic.GetArgument<TodoDbContext>(2)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_todo = await arg_todoServiceOrBodyResolver(httpContext);
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return;
                    }
                    var result = await handler(arg_id, arg_todo, arg_db);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_todo = await arg_todoServiceOrBodyResolver(httpContext);
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id, arg_todo, arg_db));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\MapTodos.cs", 48)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\MapTodos.cs", 48));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Created<Todo>>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Todo, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<Todo>> arg_todoServiceOrBodyResolver = (ispis?.IsService(typeof(Todo)) ?? false) ? ResolveService<Todo> : ResolveBody<Todo>;
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<TodoDbContext>> arg_dbServiceOrBodyResolver = (ispis?.IsService(typeof(TodoDbContext)) ?? false) ? ResolveService<TodoDbContext> : ResolveBody<TodoDbContext>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Todo>(0), ic.GetArgument<TodoDbContext>(1)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_todo = await arg_todoServiceOrBodyResolver(httpContext);
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    var result = await handler(arg_todo, arg_db);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_todo = await arg_todoServiceOrBodyResolver(httpContext);
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_todo, arg_db));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\MapTodos.cs", 58)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\MapTodos.cs", 58));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Ok<Todo>>(del.Method, builder);
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.NotFound>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<TodoDbContext>> arg_dbServiceOrBodyResolver = (ispis?.IsService(typeof(TodoDbContext)) ?? false) ? ResolveService<TodoDbContext> : ResolveBody<TodoDbContext>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0), ic.GetArgument<TodoDbContext>(1)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return;
                    }
                    var result = await handler(arg_id, arg_db);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = httpContext.Request.RouteValues["id"]?.ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_db = await arg_dbServiceOrBodyResolver(httpContext);
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id, arg_db));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 16)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 16));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler());
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = handler();
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 17)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 17));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = httpContext.Request.RouteValues["name"]?.ToString();
                    var result = handler(arg_name);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = httpContext.Request.RouteValues["name"]?.ToString();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_name));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 21)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 21));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(Person)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Person>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler());
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = handler();
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 23)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 23));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Ok<string>>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.Security.Claims.ClaimsPrincipal, ISayHello, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<ISayHello>> arg_hellosvcServiceOrBodyResolver = (ispis?.IsService(typeof(ISayHello)) ?? false) ? ResolveService<ISayHello> : ResolveBody<ISayHello>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.Security.Claims.ClaimsPrincipal>(0), ic.GetArgument<ISayHello>(1)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_c = httpContext.User;
                    var arg_hellosvc = await arg_hellosvcServiceOrBodyResolver(httpContext);
                    var result = handler(arg_c, arg_hellosvc);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_c = httpContext.User;
                    var arg_hellosvc = await arg_hellosvcServiceOrBodyResolver(httpContext);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_c, arg_hellosvc));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 25)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 25));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(System.Text.Json.Nodes.JsonNode)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.Text.Json.Nodes.JsonNode, System.Text.Json.Nodes.JsonNode>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var ispis = builder.ApplicationServices.GetService<IServiceProviderIsService>();
                System.Func<HttpContext, System.Threading.Tasks.ValueTask<System.Text.Json.Nodes.JsonNode>> arg_nodeServiceOrBodyResolver = (ispis?.IsService(typeof(System.Text.Json.Nodes.JsonNode)) ?? false) ? ResolveService<System.Text.Json.Nodes.JsonNode> : ResolveBody<System.Text.Json.Nodes.JsonNode>;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.Text.Json.Nodes.JsonNode>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_node = await arg_nodeServiceOrBodyResolver(httpContext);
                    var result = handler(arg_node);
                    await httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_node = await arg_nodeServiceOrBodyResolver(httpContext);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_node));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 26)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 26));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(System.Text.Json.Nodes.JsonNode)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.Text.Json.Nodes.JsonNode, System.Text.Json.Nodes.JsonNode>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.Text.Json.Nodes.JsonNode>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_node = await ResolveBody<System.Text.Json.Nodes.JsonNode>(httpContext);
                    var result = handler(arg_node);
                    await httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_node = await ResolveBody<System.Text.Json.Nodes.JsonNode>(httpContext);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_node));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 28)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 28));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(Model)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Model, Model>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var parameterInfos = del.Method.GetParameters();
                var arg_mParameterInfo = parameterInfos[0];
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Model>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_m = await Model.BindAsync(httpContext, arg_mParameterInfo);
                    var result = handler(arg_m);
                    await httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_m = await Model.BindAsync(httpContext, arg_mParameterInfo);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_m));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 29)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 29));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<Model>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var parameterInfos = del.Method.GetParameters();
                var arg_mParameterInfo = parameterInfos[0];
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<Model>(0));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_m = await Model.BindAsync(httpContext, arg_mParameterInfo);
                    handler(arg_m);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_m = await Model.BindAsync(httpContext, arg_mParameterInfo);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_m));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 31)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 31));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Microsoft.AspNetCore.Http.IFormFile, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Microsoft.AspNetCore.Http.IFormFile>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var formCollection = await httpContext.Request.ReadFormAsync();
                    var arg_file = formCollection.Files["file"];
                    var result = handler(arg_file);
                    await httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var formCollection = await httpContext.Request.ReadFormAsync();
                    var arg_file = formCollection.Files["file"];
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_file));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 36)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 36));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.NotFound>(del.Method, builder);
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Ok<string>>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_nameRouteOrQueryResolver = routePattern?.GetParameter("name") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = handler(arg_name);
                    return result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_name));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 39)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 39));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Microsoft.AspNetCore.Http.IFormCollection, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Microsoft.AspNetCore.Http.IFormCollection>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var formCollection = await httpContext.Request.ReadFormAsync();
                    var arg_formCollection = formCollection;
                    var result = handler(arg_formCollection);
                    await httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var formCollection = await httpContext.Request.ReadFormAsync();
                    var arg_formCollection = formCollection;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_formCollection));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 44)] = (
           (del, builder) => 
            {
                var parameterInfos = del.Method.GetParameters();
                PopulateMetadata<MinimalApis.Extensions.Binding.Body<string>>(parameterInfos[0], builder);
                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 44));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<MinimalApis.Extensions.Binding.Body<string>, string>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var parameterInfos = del.Method.GetParameters();
                var arg_bodyParameterInfo = parameterInfos[0];
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<MinimalApis.Extensions.Binding.Body<string>>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_body = await MinimalApis.Extensions.Binding.Body<string>.BindAsync(httpContext, arg_bodyParameterInfo);
                    var result = handler(arg_body);
                    await httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_body = await MinimalApis.Extensions.Binding.Body<string>.BindAsync(httpContext, arg_bodyParameterInfo);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_body));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 46)] = (
           (del, builder) => 
            {
                var parameterInfos = del.Method.GetParameters();
                PopulateMetadata<MinimalApis.Extensions.Binding.Validated<Model>>(parameterInfos[0], builder);
                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 46));
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.ValidationProblem>(del.Method, builder);
                PopulateMetadata<Microsoft.AspNetCore.Http.HttpResults.Ok>(del.Method, builder);
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<MinimalApis.Extensions.Binding.Validated<Model>, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var parameterInfos = del.Method.GetParameters();
                var arg_modelParameterInfo = parameterInfos[0];
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<MinimalApis.Extensions.Binding.Validated<Model>>(0)));
                    },
                    builder,
                    handler.Method);
                }

                async System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_model = await MinimalApis.Extensions.Binding.Validated<Model>.BindAsync(httpContext, arg_modelParameterInfo);
                    var result = handler(arg_model);
                    await result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_model = await MinimalApis.Extensions.Binding.Validated<Model>.BindAsync(httpContext, arg_modelParameterInfo);
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_model));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 55)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 55));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(object)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.Threading.CancellationToken, object>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.Threading.CancellationToken>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_ct = httpContext.RequestAborted;
                    var result = handler(arg_ct);
                    return ExecuteObjectResult(result, httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_ct = httpContext.RequestAborted;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_ct));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 59)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 59));
                builder.Metadata.Add(ResponseTypeMetadata.Create(401));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int?, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_idRouteOrQueryResolver = routePattern?.GetParameter("id") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int?>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int? arg_id;
                    if (arg_id_Value != null && int.TryParse(arg_id_Value, out var arg_id_Temp))
                    {
                        arg_id = arg_id_Temp;
                    }
                    else
                    {
                        arg_id = default;
                    }
                    var result = handler(arg_id);
                    return result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int? arg_id;
                    if (arg_id_Value != null && int.TryParse(arg_id_Value, out var arg_id_Temp))
                    {
                        arg_id = arg_id_Temp;
                    }
                    else
                    {
                        arg_id = default;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 61)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 61));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.IO.Stream, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.IO.Stream>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_s = httpContext.Request.Body;
                    var result = handler(arg_s);
                    return result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_s = httpContext.Request.Body;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_s));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 62)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 62));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<System.IO.Pipelines.PipeReader, Microsoft.AspNetCore.Http.IResult>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<System.IO.Pipelines.PipeReader>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_r = httpContext.Request.BodyReader;
                    var result = handler(arg_r);
                    return result.ExecuteAsync(httpContext);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_r = httpContext.Request.BodyReader;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_r));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 64)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 64));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Microsoft.AspNetCore.Http.HttpRequest, Microsoft.AspNetCore.Http.HttpResponse, System.Threading.Tasks.Task>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Microsoft.AspNetCore.Http.HttpRequest>(0), ic.GetArgument<Microsoft.AspNetCore.Http.HttpResponse>(1)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_req = httpContext.Request;
                    var arg_resp = httpContext.Response;
                    return handler(arg_req, arg_resp);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_req = httpContext.Request;
                    var arg_resp = httpContext.Response;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_req, arg_resp));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 66)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 66));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(string?[])));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Microsoft.Extensions.Primitives.StringValues, string?[]>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_queriesRouteOrQueryResolver = routePattern?.GetParameter("queries") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Microsoft.Extensions.Primitives.StringValues>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_queries = arg_queriesRouteOrQueryResolver(httpContext, "queries");
                    var result = handler(arg_queries);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_queries = arg_queriesRouteOrQueryResolver(httpContext, "queries");
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_queries));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 67)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 67));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(string[])));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string[], string[]>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_queriesRouteOrQueryResolver = routePattern?.GetParameter("queries") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string[]>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_queries = arg_queriesRouteOrQueryResolver(httpContext, "queries").ToArray();
                    var result = handler(arg_queries);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_queries = arg_queriesRouteOrQueryResolver(httpContext, "queries").ToArray();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_queries));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 68)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 68));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int[])));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int[], int[]>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_queriesRouteOrQueryResolver = routePattern?.GetParameter("queries") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int[]>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_queries_Value = arg_queriesRouteOrQueryResolver(httpContext, "queries").ToArray();
                    int[] arg_queries = default;
                    for (var i = 0; i < arg_queries.Length; i++)
                    {
                        arg_queries ??= new int[arg_queries_Value.Length];
                        if (arg_queries_Value[i] == null || !int.TryParse(arg_queries_Value[i], out arg_queries[i]))
                        {
                            arg_queries[i] = default;
                            wasParamCheckFailure = true;
                        }
                    }
                    arg_queries ??= System.Array.Empty<int>();
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_queries);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_queries_Value = arg_queriesRouteOrQueryResolver(httpContext, "queries").ToArray();
                    int[] arg_queries = default;
                    for (var i = 0; i < arg_queries.Length; i++)
                    {
                        arg_queries ??= new int[arg_queries_Value.Length];
                        if (arg_queries_Value[i] == null || !int.TryParse(arg_queries_Value[i], out arg_queries[i]))
                        {
                            arg_queries[i] = default;
                            wasParamCheckFailure = true;
                        }
                    }
                    arg_queries ??= System.Array.Empty<int>();
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_queries));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 73)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 73));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(Person)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Person>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler());
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = handler();
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 79)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 79));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, string>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_idRouteOrQueryResolver = routePattern?.GetParameter("id") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_id);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 81)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 81));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string, string>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_nameRouteOrQueryResolver = routePattern?.GetParameter("name") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = handler(arg_name);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_name));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 82)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 82));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string, string>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_nameRouteOrQueryResolver = routePattern?.GetParameter("name") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = handler(arg_name);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = arg_nameRouteOrQueryResolver(httpContext, "name").ToString();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_name));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 84)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 84));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Choices, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Choices>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_c_Value = httpContext.Request.RouteValues["c"]?.ToString();
                    Choices arg_c;
                    if (arg_c_Value == null || !System.Enum.TryParse(arg_c_Value, true, out arg_c))
                    {
                        arg_c = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_c);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_c_Value = httpContext.Request.RouteValues["c"]?.ToString();
                    Choices arg_c;
                    if (arg_c_Value == null || !System.Enum.TryParse(arg_c_Value, true, out arg_c))
                    {
                        arg_c = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_c));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 103)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 103));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_x);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 104)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 104));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_yRouteOrQueryResolver = routePattern?.GetParameter("y") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<int>(0), ic.GetArgument<int>(1));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    handler(arg_x, arg_y);
                    return System.Threading.Tasks.Task.CompletedTask;
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x, arg_y));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 105)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 105));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_x);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 106)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 106));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_yRouteOrQueryResolver = routePattern?.GetParameter("y") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<int>(0), ic.GetArgument<int>(1));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    handler(arg_x, arg_y);
                    return System.Threading.Tasks.Task.CompletedTask;
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x, arg_y));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 107)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 107));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_x);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 108)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 108));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_yRouteOrQueryResolver = routePattern?.GetParameter("y") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<int>(0), ic.GetArgument<int>(1));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    handler(arg_x, arg_y);
                    return System.Threading.Tasks.Task.CompletedTask;
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x, arg_y));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 109)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 109));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_x);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 110)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 110));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_yRouteOrQueryResolver = routePattern?.GetParameter("y") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<int>(0), ic.GetArgument<int>(1));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    handler(arg_x, arg_y);
                    return System.Threading.Tasks.Task.CompletedTask;
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x, arg_y));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 111)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 111));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_x);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 112)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 112));
            }, 
           (del, builder) => 
            {
                var handler = (System.Action<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_xRouteOrQueryResolver = routePattern?.GetParameter("x") is null ? ResolveByQuery : ResolveByRoute;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_yRouteOrQueryResolver = routePattern?.GetParameter("y") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        handler(ic.GetArgument<int>(0), ic.GetArgument<int>(1));
                        return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    handler(arg_x, arg_y);
                    return System.Threading.Tasks.Task.CompletedTask;
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_x_Value = arg_xRouteOrQueryResolver(httpContext, "x").ToString();
                    int arg_x;
                    if (arg_x_Value == null || !int.TryParse(arg_x_Value, out arg_x))
                    {
                        arg_x = default;
                        wasParamCheckFailure = true;
                    }
                    var arg_y_Value = arg_yRouteOrQueryResolver(httpContext, "y").ToString();
                    int arg_y;
                    if (arg_y_Value == null || !int.TryParse(arg_y_Value, out arg_y))
                    {
                        arg_y = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_x, arg_y));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 113)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 113));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(int)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, int>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_n_Value = httpContext.Request.RouteValues["n"]?.ToString();
                    int arg_n;
                    if (arg_n_Value == null || !int.TryParse(arg_n_Value, out arg_n))
                    {
                        arg_n = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_n);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_n_Value = httpContext.Request.RouteValues["n"]?.ToString();
                    int arg_n;
                    if (arg_n_Value == null || !int.TryParse(arg_n_Value, out arg_n))
                    {
                        arg_n = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_n));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 124)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 124));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<string, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<string>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = httpContext.Request.RouteValues["name"]?.ToString();
                    var result = handler(arg_name);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_name = httpContext.Request.RouteValues["name"]?.ToString();
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_name));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 126)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 126));
                builder.Metadata.Add(ResponseTypeMetadata.Create("application/json", typeof(Parsable)));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Parsable, Parsable>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Parsable>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_p_Value = httpContext.Request.Query["p"].ToString();
                    Parsable arg_p;
                    if (arg_p_Value == null || !Parsable.TryParse(arg_p_Value, System.Globalization.CultureInfo.InvariantCulture, out arg_p))
                    {
                        arg_p = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_p);
                    return httpContext.Response.WriteAsJsonAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_p_Value = httpContext.Request.Query["p"].ToString();
                    Parsable arg_p;
                    if (arg_p_Value == null || !Parsable.TryParse(arg_p_Value, System.Globalization.CultureInfo.InvariantCulture, out arg_p))
                    {
                        arg_p = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_p));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Program.cs", 128)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Program.cs", 128));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<Microsoft.AspNetCore.Http.HttpContext, string>)del;
                EndpointFilterDelegate filteredInvocation = null;

                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<Microsoft.AspNetCore.Http.HttpContext>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_context = httpContext;
                    var result = handler(arg_context);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var arg_context = httpContext;
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_context));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),

            [(@"C:\dev\git\uController\samples\Wrapper.cs", 15)] = (
           (del, builder) => 
            {

                builder.Metadata.Add(new SourceKey(@"C:\dev\git\uController\samples\Wrapper.cs", 15));
                builder.Metadata.Add(ResponseTypeMetadata.Create("text/plain"));
            }, 
           (del, builder) => 
            {
                var handler = (System.Func<int, string>)del;
                EndpointFilterDelegate filteredInvocation = null;
                var routePattern = (builder as RouteEndpointBuilder)?.RoutePattern;
                System.Func<HttpContext, string, Microsoft.Extensions.Primitives.StringValues> arg_idRouteOrQueryResolver = routePattern?.GetParameter("id") is null ? ResolveByQuery : ResolveByRoute;
                if (builder.FilterFactories.Count > 0)
                {
                    filteredInvocation = BuildFilterDelegate(ic => 
                    {
                        if (ic.HttpContext.Response.StatusCode == 400)
                        {
                            return System.Threading.Tasks.ValueTask.FromResult<object>(Results.Empty);
                        }
                        return System.Threading.Tasks.ValueTask.FromResult<object>(handler(ic.GetArgument<int>(0)));
                    },
                    builder,
                    handler.Method);
                }

                System.Threading.Tasks.Task RequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                        return Task.CompletedTask;
                    }
                    var result = handler(arg_id);
                    return httpContext.Response.WriteAsync(result);
                }
                
                async System.Threading.Tasks.Task RequestHandlerFiltered(Microsoft.AspNetCore.Http.HttpContext httpContext)
                {
                    var wasParamCheckFailure = false;
                    var arg_id_Value = arg_idRouteOrQueryResolver(httpContext, "id").ToString();
                    int arg_id;
                    if (arg_id_Value == null || !int.TryParse(arg_id_Value, out arg_id))
                    {
                        arg_id = default;
                        wasParamCheckFailure = true;
                    }
                    if (wasParamCheckFailure)
                    {
                        httpContext.Response.StatusCode = 400;
                    }
                    var result = await filteredInvocation(new DefaultEndpointFilterInvocationContext(httpContext, arg_id));
                    await ExecuteObjectResult(result, httpContext);
                }

                return filteredInvocation is null ? RequestHandler : RequestHandlerFiltered;
            }),


    };
        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<TodoDbContext, System.Threading.Tasks.Task<System.Collections.Generic.List<Todo>>> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PUT requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, Todo, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PutVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Todo, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP DELETE requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, TodoDbContext, System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.IResult>> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, DeleteVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<string, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet<T>(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<T> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore<T>(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Person> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<System.Security.Claims.ClaimsPrincipal, ISayHello, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<System.Text.Json.Nodes.JsonNode, System.Text.Json.Nodes.JsonNode> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Model, Model> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<Model> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Microsoft.AspNetCore.Http.IFormFile, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<string, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Microsoft.AspNetCore.Http.IFormCollection, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<MinimalApis.Extensions.Binding.Body<string>, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<MinimalApis.Extensions.Binding.Validated<Model>, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<System.Threading.CancellationToken, object> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int?, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, null, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<System.IO.Stream, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<System.IO.Pipelines.PipeReader, Microsoft.AspNetCore.Http.IResult> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PATCH requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Microsoft.AspNetCore.Http.HttpRequest, Microsoft.AspNetCore.Http.HttpResponse, System.Threading.Tasks.Task> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PatchVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Microsoft.Extensions.Primitives.StringValues, string?[]> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<string[], string[]> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int[], int[]> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Choices, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, null, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, null, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PUT requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PutVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PUT requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PutVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP POST requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PostVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP DELETE requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, DeleteVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP DELETE requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, DeleteVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PATCH requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PatchVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP PATCH requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPatch(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action<int, int> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, PatchVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Parsable, Parsable> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

        /// <summary>
        /// Adds a <see cref="RouteEndpoint"/> to the <see cref="IEndpointRouteBuilder"/> that matches HTTP GET requests
        /// for the specified pattern.
        /// </summary>
        /// <param name="endpoints">The <see cref="IEndpointRouteBuilder"/> to add the route to.</param>
        /// <param name="pattern">The route pattern.</param>
        /// <param name="handler">The delegate executed when the endpoint is matched.</param>
        /// <returns>A <see cref="RouteHandlerBuilder"/> that can be used to further customize the endpoint.</returns>
        internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Func<Microsoft.AspNetCore.Http.HttpContext, string> handler, [System.Runtime.CompilerServices.CallerFilePath] string filePath = "", [System.Runtime.CompilerServices.CallerLineNumber]int lineNumber = 0)
        {
            return MapCore(endpoints, pattern, handler, GetVerb, filePath, lineNumber);
        }

    private static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapCore<T>(
        this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder routes, 
        string pattern, 
        System.Delegate handler,
        IEnumerable<string> httpMethods,
        string filePath,
        int lineNumber)
    {
        var (populate, factory) = GenericThunks<T>.map[(filePath, lineNumber)];

        return GetOrAddRouteEndpointDataSource(routes).AddRouteHandler(RoutePatternFactory.Parse(pattern), handler, httpMethods, isFallback: false, populate, factory);
    }

    private static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapCore(
        this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder routes, 
        string pattern, 
        System.Delegate handler,
        IEnumerable<string> httpMethods,
        string filePath,
        int lineNumber)
    {
        var (populate, factory) = map[(filePath, lineNumber)];

        return GetOrAddRouteEndpointDataSource(routes).AddRouteHandler(RoutePatternFactory.Parse(pattern), handler, httpMethods, isFallback: false, populate, factory);
    }

    private static SourceGeneratedRouteEndpointDataSource GetOrAddRouteEndpointDataSource(IEndpointRouteBuilder endpoints)
    {
        SourceGeneratedRouteEndpointDataSource routeEndpointDataSource = null;

        foreach (var dataSource in endpoints.DataSources)
        {
            if (dataSource is SourceGeneratedRouteEndpointDataSource foundDataSource)
            {
                routeEndpointDataSource = foundDataSource;
                break;
            }
        }

        if (routeEndpointDataSource is null)
        {
            routeEndpointDataSource = new SourceGeneratedRouteEndpointDataSource(endpoints.ServiceProvider);
            endpoints.DataSources.Add(routeEndpointDataSource);
        }

        return routeEndpointDataSource;
    }

    private static EndpointFilterDelegate BuildFilterDelegate(EndpointFilterDelegate filteredInvocation, EndpointBuilder builder, System.Reflection.MethodInfo mi)
    {
        var routeHandlerFilters =  builder.FilterFactories;

        var context0 = new EndpointFilterFactoryContext
        {
            MethodInfo = mi,
            ApplicationServices = builder.ApplicationServices,
        };

        var initialFilteredInvocation = filteredInvocation;

        for (var i = routeHandlerFilters.Count - 1; i >= 0; i--)
        {
            var filterFactory = routeHandlerFilters[i];
            filteredInvocation = filterFactory(context0, filteredInvocation);
        }

        return filteredInvocation;
    }

    private static void PopulateMetadata<T>(System.Reflection.MethodInfo method, EndpointBuilder builder) where T : Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider
    {
        T.PopulateMetadata(method, builder);
    }

    private static void PopulateMetadata<T>(System.Reflection.ParameterInfo parameter, EndpointBuilder builder) where T : Microsoft.AspNetCore.Http.Metadata.IEndpointParameterMetadataProvider
    {
        T.PopulateMetadata(parameter, builder);
    }

    private static Task ExecuteObjectResult(object obj, HttpContext httpContext)
    {
        if (obj is IResult r)
        {
            return r.ExecuteAsync(httpContext);
        }
        else if (obj is string s)
        {
            return httpContext.Response.WriteAsync(s);
        }
        else
        {
            return httpContext.Response.WriteAsJsonAsync(obj);
        }
    }

    private static Microsoft.Extensions.Primitives.StringValues ResolveByQuery(HttpContext context, string key) => context.Request.Query[key];
    private static Microsoft.Extensions.Primitives.StringValues ResolveByRoute(HttpContext context, string key) => context.Request.RouteValues[key]?.ToString();
    private static ValueTask<T> ResolveService<T>(HttpContext httpContext) => new ValueTask<T>(httpContext.RequestServices.GetRequiredService<T>());
    private static async ValueTask<T> ResolveBody<T>(HttpContext httpContext)
    {
        var feature = httpContext.Features.Get<Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature>();

        if (feature?.CanHaveBody == true)
        {
            if (!httpContext.Request.HasJsonContentType())
            {
                httpContext.Response.StatusCode = StatusCodes.Status415UnsupportedMediaType;
                return default;
            }
            try
            {
                return await httpContext.Request.ReadFromJsonAsync<T>();
            }
            catch (IOException)
            {
                return default;
            }
            catch (System.Text.Json.JsonException)
            {
                httpContext.Response.StatusCode = StatusCodes.Status400BadRequest;
                return default;
            }
        }
        return default;
    }

    private sealed class ResponseTypeMetadata : Microsoft.AspNetCore.Http.Metadata.IProducesResponseTypeMetadata
    {
        public Type Type { get; set; } = typeof(void);

        public int StatusCode { get; set; } = 200;

        public IEnumerable<string> ContentTypes { get; init; } = Enumerable.Empty<string>();

        public static ResponseTypeMetadata Create(string contentType, Type type = null)
        {
            return new ResponseTypeMetadata { ContentTypes = new[] { contentType }, Type = type };
        }

        public static ResponseTypeMetadata Create(int statusCode)
        {
            return new ResponseTypeMetadata { StatusCode = statusCode };
        }
    }

    private sealed class SourceGeneratedRouteEndpointDataSource : EndpointDataSource
    {
        private readonly List<RouteEntry> _routeEntries = new();
        private readonly IServiceProvider _applicationServices;

        public SourceGeneratedRouteEndpointDataSource(IServiceProvider applicationServices)
        {
            _applicationServices = applicationServices;
        }

        public RouteHandlerBuilder AddRouteHandler(
            RoutePattern pattern,
            Delegate routeHandler,
            IEnumerable<string> httpMethods,
            bool isFallback,
            MetadataPopulator metadataPopulator,
            RequestDelegateFactoryFunc requestDelegateFactoryFunc)
        {
            var conventions = new ThrowOnAddAfterEndpointBuiltConventionCollection();
            var finallyConventions = new ThrowOnAddAfterEndpointBuiltConventionCollection();

            var routeAttributes = RouteAttributes.RouteHandler;
            if (isFallback)
            {
                routeAttributes |= RouteAttributes.Fallback;
            }

            _routeEntries.Add(new()
            {
                RoutePattern = pattern,
                RouteHandler = routeHandler,
                HttpMethods = httpMethods,
                RouteAttributes = routeAttributes,
                Conventions = conventions,
                FinallyConventions = finallyConventions,
                RequestDelegateFactory = requestDelegateFactoryFunc,
                MetadataPopulator = metadataPopulator,
            });

            return new RouteHandlerBuilder(new[] { new ConventionBuilder(conventions, finallyConventions) });
        }

        public override IReadOnlyList<RouteEndpoint> Endpoints
        {
            get
            {
                var endpoints = new RouteEndpoint[_routeEntries.Count];
                for (int i = 0; i < _routeEntries.Count; i++)
                {
                    endpoints[i] = (RouteEndpoint)CreateRouteEndpointBuilder(_routeEntries[i]).Build();
                }
                return endpoints;
            }
        }

        public override IReadOnlyList<RouteEndpoint> GetGroupedEndpoints(RouteGroupContext context)
        {
            var endpoints = new RouteEndpoint[_routeEntries.Count];
            for (int i = 0; i < _routeEntries.Count; i++)
            {
                endpoints[i] = (RouteEndpoint)CreateRouteEndpointBuilder(_routeEntries[i], context.Prefix, context.Conventions, context.FinallyConventions).Build();
            }
            return endpoints;
        }

        public override IChangeToken GetChangeToken() => NullChangeToken.Singleton;

        private RouteEndpointBuilder CreateRouteEndpointBuilder(
            RouteEntry entry, RoutePattern groupPrefix = null, IReadOnlyList<Action<EndpointBuilder>> groupConventions = null, IReadOnlyList<Action<EndpointBuilder>> groupFinallyConventions = null)
        {
            var pattern = RoutePatternFactory.Combine(groupPrefix, entry.RoutePattern);
            var handler = entry.RouteHandler;
            var isRouteHandler = (entry.RouteAttributes & RouteAttributes.RouteHandler) == RouteAttributes.RouteHandler;
            var isFallback = (entry.RouteAttributes & RouteAttributes.Fallback) == RouteAttributes.Fallback;

            var order = isFallback ? int.MaxValue : 0;
            var displayName = pattern.RawText ?? pattern.ToString();

            if (entry.HttpMethods is not null)
            {
                // Prepends the HTTP method to the DisplayName produced with pattern + method name
                displayName = $"HTTP: {string.Join(", ", entry.HttpMethods)} {displayName}";
            }

            if (isFallback)
            {
                displayName = $"Fallback {displayName}";
            }

            // If we're not a route handler, we started with a fully realized (although unfiltered) RequestDelegate, so we can just redirect to that
            // while running any conventions. We'll put the original back if it remains unfiltered right before building the endpoint.
            RequestDelegate factoryCreatedRequestDelegate = null;

            // Let existing conventions capture and call into builder.RequestDelegate as long as they do so after it has been created.
            RequestDelegate redirectRequestDelegate = context =>
            {
                if (factoryCreatedRequestDelegate is null)
                {
                    throw new InvalidOperationException("Resources.RouteEndpointDataSource_RequestDelegateCannotBeCalledBeforeBuild");
                }

                return factoryCreatedRequestDelegate(context);
            };

            // Add MethodInfo and HttpMethodMetadata (if any) as first metadata items as they are intrinsic to the route much like
            // the pattern or default display name. This gives visibility to conventions like WithOpenApi() to intrinsic route details
            // (namely the MethodInfo) even when applied early as group conventions.
            RouteEndpointBuilder builder = new(redirectRequestDelegate, pattern, order)
            {
                DisplayName = displayName,
                ApplicationServices = _applicationServices,
            };

            if (isRouteHandler)
            {
                builder.Metadata.Add(handler.Method);
            }

            if (entry.HttpMethods is not null)
            {
                builder.Metadata.Add(new HttpMethodMetadata(entry.HttpMethods));
            }

            // Apply group conventions before entry-specific conventions added to the RouteHandlerBuilder.
            if (groupConventions is not null)
            {
                foreach (var groupConvention in groupConventions)
                {
                    groupConvention(builder);
                }
            }

            // Any metadata inferred directly inferred by RDF or indirectly inferred via IEndpoint(Parameter)MetadataProviders are
            // considered less specific than method-level attributes and conventions but more specific than group conventions
            // so inferred metadata gets added in between these. If group conventions need to override inferred metadata,
            // they can do so via IEndpointConventionBuilder.Finally like the do to override any other entry-specific metadata.
            if (isRouteHandler)
            {
                entry.MetadataPopulator(entry.RouteHandler, builder);
            }

            // Add delegate attributes as metadata before entry-specific conventions but after group conventions.
            var attributes = handler.Method.GetCustomAttributes();
            if (attributes is not null)
            {
                foreach (var attribute in attributes)
                {
                    builder.Metadata.Add(attribute);
                }
            }

            entry.Conventions.IsReadOnly = true;
            foreach (var entrySpecificConvention in entry.Conventions)
            {
                entrySpecificConvention(builder);
            }

            // If no convention has modified builder.RequestDelegate, we can use the RequestDelegate returned by the RequestDelegateFactory directly.
            var conventionOverriddenRequestDelegate = ReferenceEquals(builder.RequestDelegate, redirectRequestDelegate) ? null : builder.RequestDelegate;

            if (isRouteHandler || builder.FilterFactories.Count > 0)
            {
                factoryCreatedRequestDelegate = entry.RequestDelegateFactory(entry.RouteHandler, builder);
            }

            Debug.Assert(factoryCreatedRequestDelegate is not null);

            // Use the overridden RequestDelegate if it exists. If the overridden RequestDelegate is merely wrapping the final RequestDelegate,
            // it will still work because of the redirectRequestDelegate.
            builder.RequestDelegate = conventionOverriddenRequestDelegate ?? factoryCreatedRequestDelegate;

            entry.FinallyConventions.IsReadOnly = true;
            foreach (var entryFinallyConvention in entry.FinallyConventions)
            {
                entryFinallyConvention(builder);
            }

            if (groupFinallyConventions is not null)
            {
                // Group conventions are ordered by the RouteGroupBuilder before
                // being provided here.
                foreach (var groupFinallyConvention in groupFinallyConventions)
                {
                    groupFinallyConvention(builder);
                }
            }

            return builder;
        }
        private struct RouteEntry
        {
            public MetadataPopulator MetadataPopulator { get; init; }
            public RequestDelegateFactoryFunc RequestDelegateFactory { get; init; }
            public RoutePattern RoutePattern { get; init; }
            public Delegate RouteHandler { get; init; }
            public IEnumerable<string> HttpMethods { get; init; }
            public RouteAttributes RouteAttributes { get; init; }
            public ThrowOnAddAfterEndpointBuiltConventionCollection Conventions { get; init; }
            public ThrowOnAddAfterEndpointBuiltConventionCollection FinallyConventions { get; init; }
        }

        [Flags]
        private enum RouteAttributes
        {
            // The endpoint was defined by a RequestDelegate, RequestDelegateFactory.Create() should be skipped unless there are endpoint filters.
            None = 0,
            // This was added as Delegate route handler, so RequestDelegateFactory.Create() should always be called.
            RouteHandler = 1,
            // This was added by MapFallback.
            Fallback = 2,
        }

        // This private class is only exposed to internal code via ICollection<Action<EndpointBuilder>> in RouteEndpointBuilder where only Add is called.
        private sealed class ThrowOnAddAfterEndpointBuiltConventionCollection : List<Action<EndpointBuilder>>, ICollection<Action<EndpointBuilder>>
        {
            // We throw if someone tries to add conventions to the RouteEntry after endpoints have already been resolved meaning the conventions
            // will not be observed given RouteEndpointDataSource is not meant to be dynamic and uses NullChangeToken.Singleton.
            public bool IsReadOnly { get; set; }

            void ICollection<Action<EndpointBuilder>>.Add(Action<EndpointBuilder> convention)
            {
                if (IsReadOnly)
                {
                    throw new InvalidOperationException("Resources.RouteEndpointDataSource_ConventionsCannotBeModifiedAfterBuild");
                }

                Add(convention);
            }
        }

        private class ConventionBuilder : IEndpointConventionBuilder
        {
            private readonly ICollection<Action<EndpointBuilder>> _conventions;
            private readonly ICollection<Action<EndpointBuilder>> _finallyConventions;
            public ConventionBuilder(ICollection<Action<EndpointBuilder>> conventions, ICollection<Action<EndpointBuilder>> finallyConventions)
            {
                _conventions = conventions;
                _finallyConventions = finallyConventions;
            }

            /// <summary>
            /// Adds the specified convention to the builder. Conventions are used to customize <see cref="EndpointBuilder"/> instances.
            /// </summary>
            /// <param name="convention">The convention to 
Download .txt
gitextract_a4yt5j7o/

├── .gitattributes
├── .github/
│   └── workflows/
│       └── ci.yaml
├── .gitignore
├── .vscode/
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── Directory.Build.props
├── GeneratedOutput/
│   └── RouteBuilderExtensions.g.cs
├── README.md
├── nuget.config
├── samples/
│   ├── .vscode/
│   │   ├── launch.json
│   │   └── tasks.json
│   ├── MapTodos.cs
│   ├── Program.cs
│   ├── Sample.csproj
│   ├── Wrapper.cs
│   └── appsettings.json
├── src/
│   └── uController.SourceGenerator/
│       ├── AnalyzerReleases.Shipped.md
│       ├── AnalyzerReleases.Unshipped.md
│       ├── AwaitableInfo.cs
│       ├── CodeGenerationTypes.cs
│       ├── HttpModel.cs
│       ├── MinimalCodeGenerator.cs
│       ├── Reflection/
│       │   ├── MetadataLoadContext.cs
│       │   ├── RoslynAssembly.cs
│       │   ├── RoslynConstructorInfo.cs
│       │   ├── RoslynCustomAttributeData.cs
│       │   ├── RoslynExtensions.cs
│       │   ├── RoslynFieldInfo.cs
│       │   ├── RoslynMemberInfo.cs
│       │   ├── RoslynMethodInfo.cs
│       │   ├── RoslynParameterInfo.cs
│       │   ├── RoslynPropertyInfo.cs
│       │   ├── RoslynType.cs
│       │   └── SharedUtilities.cs
│       ├── ReflectionExtensions.cs
│       ├── RoutePattern.cs
│       ├── WellKnownTypes.cs
│       ├── uController.SourceGenerator.csproj
│       └── uControllerGenerator.cs
├── test/
│   └── uController.SourceGenerator.Tests/
│       ├── IntegrationTests.cs
│       ├── SharedTypes.cs
│       ├── SourceKey.cs
│       ├── Usings.cs
│       └── uController.SourceGenerator.Tests.csproj
├── uController.sln
└── version.json
Download .txt
SYMBOL INDEX (358 symbols across 27 files)

FILE: GeneratedOutput/RouteBuilderExtensions.g.cs
  type SourceKey (line 25) | internal record SourceKey(string Path, int Line);
  class GeneratedRouteBuilderExtensions (line 28) | internal static class GeneratedRouteBuilderExtensions
    class GenericThunks (line 36) | private class GenericThunks<T>
    method MapGet (line 2661) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2674) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapPut (line 2687) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPu...
    method MapPost (line 2700) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapDelete (line 2713) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDe...
    method MapGet (line 2726) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2739) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2752) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2765) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2778) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapPost (line 2791) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2804) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2817) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2830) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapGet (line 2843) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapPost (line 2856) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2869) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2882) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapGet (line 2895) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method Map (line 2908) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(t...
    method MapPost (line 2921) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 2934) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPatch (line 2947) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPa...
    method MapGet (line 2960) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2973) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2986) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 2999) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 3012) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method Map (line 3025) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(t...
    method Map (line 3038) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder Map(t...
    method MapPut (line 3051) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPu...
    method MapPut (line 3064) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPu...
    method MapPost (line 3077) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapPost (line 3090) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPo...
    method MapDelete (line 3103) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDe...
    method MapDelete (line 3116) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapDe...
    method MapPatch (line 3129) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPa...
    method MapPatch (line 3142) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapPa...
    method MapGet (line 3155) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapGet (line 3168) | internal static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapGe...
    method MapCore (line 3173) | private static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapCor...
    method MapCore (line 3186) | private static Microsoft.AspNetCore.Builder.RouteHandlerBuilder MapCore(
    method GetOrAddRouteEndpointDataSource (line 3199) | private static SourceGeneratedRouteEndpointDataSource GetOrAddRouteEnd...
    method BuildFilterDelegate (line 3221) | private static EndpointFilterDelegate BuildFilterDelegate(EndpointFilt...
    method PopulateMetadata (line 3242) | private static void PopulateMetadata<T>(System.Reflection.MethodInfo m...
    method PopulateMetadata (line 3247) | private static void PopulateMetadata<T>(System.Reflection.ParameterInf...
    method ExecuteObjectResult (line 3252) | private static Task ExecuteObjectResult(object obj, HttpContext httpCo...
    method ResolveByQuery (line 3268) | private static Microsoft.Extensions.Primitives.StringValues ResolveByQ...
    method ResolveByRoute (line 3269) | private static Microsoft.Extensions.Primitives.StringValues ResolveByR...
    method ResolveService (line 3270) | private static ValueTask<T> ResolveService<T>(HttpContext httpContext)...
    method ResolveBody (line 3271) | private static async ValueTask<T> ResolveBody<T>(HttpContext httpContext)
    class ResponseTypeMetadata (line 3299) | private sealed class ResponseTypeMetadata : Microsoft.AspNetCore.Http....
      method Create (line 3307) | public static ResponseTypeMetadata Create(string contentType, Type t...
      method Create (line 3312) | public static ResponseTypeMetadata Create(int statusCode)
    class SourceGeneratedRouteEndpointDataSource (line 3318) | private sealed class SourceGeneratedRouteEndpointDataSource : Endpoint...
      method SourceGeneratedRouteEndpointDataSource (line 3323) | public SourceGeneratedRouteEndpointDataSource(IServiceProvider appli...
      method AddRouteHandler (line 3328) | public RouteHandlerBuilder AddRouteHandler(
      method GetGroupedEndpoints (line 3373) | public override IReadOnlyList<RouteEndpoint> GetGroupedEndpoints(Rou...
      method GetChangeToken (line 3383) | public override IChangeToken GetChangeToken() => NullChangeToken.Sin...
      method CreateRouteEndpointBuilder (line 3385) | private RouteEndpointBuilder CreateRouteEndpointBuilder(
      type RouteEntry (line 3507) | private struct RouteEntry
      type RouteAttributes (line 3519) | [Flags]
      class ThrowOnAddAfterEndpointBuiltConventionCollection (line 3531) | private sealed class ThrowOnAddAfterEndpointBuiltConventionCollectio...
        method Add (line 3537) | void ICollection<Action<EndpointBuilder>>.Add(Action<EndpointBuild...
      class ConventionBuilder (line 3548) | private class ConventionBuilder : IEndpointConventionBuilder
        method ConventionBuilder (line 3552) | public ConventionBuilder(ICollection<Action<EndpointBuilder>> conv...
        method Add (line 3562) | public void Add(Action<EndpointBuilder> convention)
        method Finally (line 3566) | public void Finally(Action<EndpointBuilder> finalConvention)

FILE: samples/MapTodos.cs
  class TodoEndpoints (line 3) | public static class TodoEndpoints
    method MapTodoEndpoints (line 5) | public static void MapTodoEndpoints(this IEndpointRouteBuilder routes)
  class Todo (line 76) | class Todo
  class TodoDbContext (line 81) | class TodoDbContext
    method SaveChangesAsync (line 84) | public Task SaveChangesAsync() => Task.CompletedTask;
    method Update (line 85) | public void Update(object o) { }
  class DbSet (line 88) | class DbSet<T>
    method ToListAsync (line 90) | public Task<List<T>> ToListAsync() { return null; }
    method FindAsync (line 92) | public Task<T> FindAsync(object id) { return null; }
    method Remove (line 93) | public void Remove(T item) { }
    method Add (line 94) | public void Add(T item) { }

FILE: samples/Program.cs
  type Person (line 136) | record Person(string Name);
  type Product (line 137) | record Product(string Name, decimal Price);
  type Parsable (line 139) | struct Parsable : IParsable<Parsable>
    method Parsable (line 141) | public Parsable()
    method Parse (line 146) | public static Parsable Parse(string s, IFormatProvider provider)
    method TryParse (line 151) | public static bool TryParse([NotNullWhen(true)] string s, IFormatProvi...
  type ISayHello (line 156) | interface ISayHello
    method Hello (line 158) | string Hello();
  class EnglishHello (line 161) | class EnglishHello : ISayHello
    method Hello (line 163) | public string Hello() => "Hello";
  class Model (line 166) | public class Model
    method BindAsync (line 168) | public static ValueTask<Model> BindAsync(HttpContext context, Paramete...
  type Choices (line 174) | enum Choices

FILE: samples/Wrapper.cs
  class Wrapper (line 1) | class Wrapper
    method Hello2 (line 9) | public static string Hello2(string name) => $"Hello {name}";
    method Hello (line 11) | public string Hello(int id) => "Hello World";
    method AddRoutes (line 13) | public void AddRoutes(IEndpointRouteBuilder routes)

FILE: src/uController.SourceGenerator/AwaitableInfo.cs
  type AwaitableInfo (line 11) | internal readonly struct AwaitableInfo
    method AwaitableInfo (line 21) | public AwaitableInfo(
    method IsTypeAwaitable (line 39) | public static bool IsTypeAwaitable(Type type, out AwaitableInfo awaita...

FILE: src/uController.SourceGenerator/CodeGenerationTypes.cs
  type IResult (line 5) | interface IResult { }
  class HttpContext (line 6) | class HttpContext { }
  class HttpRequest (line 7) | class HttpRequest { }
  class HttpResponse (line 8) | class HttpResponse { }
  type IFormCollection (line 9) | interface IFormCollection { }
  type IFormFile (line 10) | interface IFormFile { }
  class AsParametersAttribute (line 11) | class AsParametersAttribute { }
  class Results (line 12) | class Results { }
  class TypedResults (line 13) | class TypedResults { }
  type IEndpointMetadataProvider (line 19) | interface IEndpointMetadataProvider { }
  type IEndpointParameterMetadataProvider (line 21) | interface IEndpointParameterMetadataProvider { }
  type IFromServiceMetadata (line 23) | interface IFromServiceMetadata { }
  type IFromQueryMetadata (line 24) | interface IFromQueryMetadata { }
  type IFromRouteMetadata (line 25) | interface IFromRouteMetadata { }
  type IFromBodyMetadata (line 26) | interface IFromBodyMetadata
  type IFromFormMetadata (line 30) | interface IFromFormMetadata { }
  type IFromHeaderMetadata (line 31) | interface IFromHeaderMetadata { }
  type StringValues (line 36) | struct StringValues { }
  class PipeReader (line 41) | class PipeReader { }
  type IEndpointRouteBuilder (line 46) | interface IEndpointRouteBuilder { }

FILE: src/uController.SourceGenerator/HttpModel.cs
  class MethodModel (line 9) | class MethodModel
  class ParameterModel (line 19) | class ParameterModel

FILE: src/uController.SourceGenerator/MinimalCodeGenerator.cs
  class MinimalCodeGenerator (line 19) | class MinimalCodeGenerator
    method MinimalCodeGenerator (line 25) | public MinimalCodeGenerator(WellKnownTypes wellKnownTypes)
    method Unwrap (line 32) | private Type Unwrap(Type type)
    method UnwrapValueTask (line 47) | internal static Type UnwrapValueTask(Type type)
    method Indent (line 62) | public void Indent()
    method Unindent (line 67) | public void Unindent()
    method Generate (line 72) | public void Generate(MethodModel method)
    method GenerateMethod (line 79) | private void GenerateMethod(MethodModel method)
    method GenerateFilteredMethod (line 233) | private void GenerateFilteredMethod(MethodModel method)
    method EmitParameter (line 294) | private void EmitParameter(ref bool hasAwait, ref bool hasFromBody, re...
    method HasTryParseMethod (line 507) | private bool HasTryParseMethod(Type type, out MethodInfo mi)
    method HasBindAsync (line 526) | private bool HasBindAsync(Type type, out MethodInfo mi, out int parame...
    method GenerateConvert (line 539) | private bool GenerateConvert(string sourceName, ParameterInfo paramete...
    method GenerateTryParse (line 640) | private void GenerateTryParse(MethodInfo tryParseMethod, string source...
    method GetEnumTryParseMethod (line 712) | private MethodInfo GetEnumTryParseMethod()
    method GetStaticMethodFromHierarchy (line 723) | private MethodInfo GetStaticMethodFromHierarchy(Type type, string name...
    method WriteLineNoIndent (line 763) | private void WriteLineNoIndent(string value)
    method WriteNoIndent (line 768) | private void WriteNoIndent(string value)
    method Write (line 773) | private void Write(string value)
    method WriteLine (line 782) | private void WriteLine(string value)
    method ToString (line 791) | public override string ToString()

FILE: src/uController.SourceGenerator/Reflection/MetadataLoadContext.cs
  class MetadataLoadContext (line 10) | public class MetadataLoadContext
    method MetadataLoadContext (line 15) | public MetadataLoadContext(Compilation compilation)
    method ResolveType (line 24) | public Type ResolveType(string fullyQualifiedMetadataName)
    method ResolveType (line 29) | public Type ResolveType<T>() => ResolveType(typeof(T));
    method ResolveType (line 31) | public Type ResolveType(Type type)
    method GetOrCreate (line 70) | public TMember GetOrCreate<TMember>(ISymbol symbol) where TMember : class
    method ResolveMember (line 90) | public TMember ResolveMember<TMember>(TMember memberInfo) where TMembe...

FILE: src/uController.SourceGenerator/Reflection/RoslynAssembly.cs
  class RoslynAssembly (line 9) | internal class RoslynAssembly : Assembly
    method RoslynAssembly (line 13) | public RoslynAssembly(IAssemblySymbol assembly, MetadataLoadContext me...
    method GetExportedTypes (line 23) | public override Type[] GetExportedTypes()
    method GetTypes (line 28) | public override Type[] GetTypes()
    method GetType (line 50) | public override Type GetType(string name)

FILE: src/uController.SourceGenerator/Reflection/RoslynConstructorInfo.cs
  class RoslynConstructorInfo (line 10) | internal class RoslynConstructorInfo : ConstructorInfo
    method RoslynConstructorInfo (line 15) | public RoslynConstructorInfo(IMethodSymbol ctor, MetadataLoadContext m...
    method GetGenericArguments (line 34) | public override Type[] GetGenericArguments()
    method GetCustomAttributesData (line 44) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method GetCustomAttributes (line 49) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 54) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method GetMethodImplementationFlags (line 59) | public override MethodImplAttributes GetMethodImplementationFlags()
    method GetParameters (line 64) | public override ParameterInfo[] GetParameters()
    method Invoke (line 75) | public override object Invoke(BindingFlags invokeAttr, Binder binder, ...
    method Invoke (line 80) | public override object Invoke(object obj, BindingFlags invokeAttr, Bin...
    method IsDefined (line 85) | public override bool IsDefined(Type attributeType, bool inherit)

FILE: src/uController.SourceGenerator/Reflection/RoslynCustomAttributeData.cs
  class RoslynCustomAttributeData (line 10) | internal class RoslynCustomAttributeData : CustomAttributeData
    method RoslynCustomAttributeData (line 12) | public RoslynCustomAttributeData(AttributeData a, MetadataLoadContext ...

FILE: src/uController.SourceGenerator/Reflection/RoslynExtensions.cs
  class RoslynExtensions (line 9) | public static class RoslynExtensions
    method GetMethodSymbol (line 11) | public static IMethodSymbol GetMethodSymbol(this MethodInfo methodInfo...
    method GetPropertySymbol (line 13) | public static IPropertySymbol GetPropertySymbol(this PropertyInfo prop...
    method GetFieldSymbol (line 14) | public static IFieldSymbol GetFieldSymbol(this FieldInfo field) => (fi...
    method GetParameterSymbol (line 16) | public static IParameterSymbol GetParameterSymbol(this ParameterInfo p...
    method GetTypeSymbol (line 18) | public static ITypeSymbol GetTypeSymbol(this Type type) => (type as Ro...
  class RoslynInternalExtensions (line 21) | internal static class RoslynInternalExtensions
    method AsAssembly (line 23) | public static Assembly AsAssembly(this IAssemblySymbol assemblySymbol,...
    method AsType (line 25) | public static Type AsType(this ITypeSymbol typeSymbol, MetadataLoadCon...
    method AsParameterInfo (line 27) | public static ParameterInfo AsParameterInfo(this IParameterSymbol para...
    method AsConstructorInfo (line 29) | public static ConstructorInfo AsConstructorInfo(this IMethodSymbol met...
    method AsMethodInfo (line 31) | public static MethodInfo AsMethodInfo(this IMethodSymbol methodSymbol,...
    method AsPropertyInfo (line 33) | public static PropertyInfo AsPropertyInfo(this IPropertySymbol propert...
    method AsFieldInfo (line 35) | public static FieldInfo AsFieldInfo(this IFieldSymbol fieldSymbol, Met...
    method BaseTypes (line 37) | public static IEnumerable<ITypeSymbol> BaseTypes(this ITypeSymbol type...

FILE: src/uController.SourceGenerator/Reflection/RoslynFieldInfo.cs
  class RoslynFieldInfo (line 10) | internal class RoslynFieldInfo : FieldInfo
    method RoslynFieldInfo (line 16) | public RoslynFieldInfo(IFieldSymbol parameter, MetadataLoadContext met...
    method GetCustomAttributes (line 70) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 75) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method GetValue (line 80) | public override object GetValue(object obj)
    method GetCustomAttributesData (line 85) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method IsDefined (line 90) | public override bool IsDefined(Type attributeType, bool inherit)
    method SetValue (line 95) | public override void SetValue(object obj, object value, BindingFlags i...
    method ToString (line 100) | public override string ToString() => _field.ToString();

FILE: src/uController.SourceGenerator/Reflection/RoslynMemberInfo.cs
  class RoslynMemberInfo (line 8) | internal class RoslynMemberInfo : MemberInfo
    method RoslynMemberInfo (line 13) | public RoslynMemberInfo(ISymbol member, MetadataLoadContext metadataLo...
    method GetCustomAttributesData (line 27) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method GetCustomAttributes (line 32) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 37) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method IsDefined (line 42) | public override bool IsDefined(Type attributeType, bool inherit)

FILE: src/uController.SourceGenerator/Reflection/RoslynMethodInfo.cs
  class RoslynMethodInfo (line 11) | internal class RoslynMethodInfo : MethodInfo
    method RoslynMethodInfo (line 16) | public RoslynMethodInfo(IMethodSymbol method, MetadataLoadContext meta...
    method GetCustomAttributesData (line 42) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method GetBaseDefinition (line 47) | public override MethodInfo GetBaseDefinition()
    method MakeGenericMethod (line 65) | public override MethodInfo MakeGenericMethod(params Type[] typeArguments)
    method GetCustomAttributes (line 75) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 80) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method GetGenericArguments (line 85) | public override Type[] GetGenericArguments()
    method GetMethodImplementationFlags (line 96) | public override MethodImplAttributes GetMethodImplementationFlags()
    method GetParameters (line 101) | public override ParameterInfo[] GetParameters()
    method Invoke (line 112) | public override object Invoke(object obj, BindingFlags invokeAttr, Bin...
    method IsDefined (line 117) | public override bool IsDefined(Type attributeType, bool inherit)
    method ToString (line 122) | public override string ToString() => _method.ToString();

FILE: src/uController.SourceGenerator/Reflection/RoslynParameterInfo.cs
  class RoslynParameterInfo (line 9) | public class RoslynParameterInfo : ParameterInfo
    method RoslynParameterInfo (line 14) | public RoslynParameterInfo(IParameterSymbol parameter, MetadataLoadCon...
    method GetCustomAttributesData (line 32) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method ToString (line 37) | public override string ToString() => _parameter.ToString();

FILE: src/uController.SourceGenerator/Reflection/RoslynPropertyInfo.cs
  class RoslynPropertyInfo (line 10) | internal class RoslynPropertyInfo : PropertyInfo
    method RoslynPropertyInfo (line 15) | public RoslynPropertyInfo(IPropertySymbol property, MetadataLoadContex...
    method GetAccessors (line 37) | public override MethodInfo[] GetAccessors(bool nonPublic)
    method GetCustomAttributes (line 42) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 47) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method GetGetMethod (line 52) | public override MethodInfo GetGetMethod(bool nonPublic)
    method GetIndexParameters (line 57) | public override ParameterInfo[] GetIndexParameters()
    method GetSetMethod (line 68) | public override MethodInfo GetSetMethod(bool nonPublic)
    method GetValue (line 73) | public override object GetValue(object obj, BindingFlags invokeAttr, B...
    method IsDefined (line 78) | public override bool IsDefined(Type attributeType, bool inherit)
    method SetValue (line 83) | public override void SetValue(object obj, object value, BindingFlags i...

FILE: src/uController.SourceGenerator/Reflection/RoslynType.cs
  class RoslynType (line 11) | internal class RoslynType : Type
    method RoslynType (line 18) | public RoslynType(ITypeSymbol typeSymbol, MetadataLoadContext metadata...
    method GetArrayRank (line 61) | public override int GetArrayRank()
    method GetGenericArguments (line 66) | public override Type[] GetGenericArguments()
    method GetGenericTypeDefinition (line 77) | public override Type GetGenericTypeDefinition()
    method GetCustomAttributesData (line 82) | public override IList<CustomAttributeData> GetCustomAttributesData()
    method GetConstructors (line 87) | public override ConstructorInfo[] GetConstructors(BindingFlags binding...
    method MakeByRefType (line 108) | public override Type MakeByRefType()
    method GetCustomAttributes (line 113) | public override object[] GetCustomAttributes(bool inherit)
    method GetCustomAttributes (line 118) | public override object[] GetCustomAttributes(Type attributeType, bool ...
    method MakeArrayType (line 123) | public override Type MakeArrayType()
    method MakeGenericType (line 128) | public override Type MakeGenericType(params Type[] typeArguments)
    method GetElementType (line 144) | public override Type GetElementType()
    method GetEvent (line 149) | public override EventInfo GetEvent(string name, BindingFlags bindingAttr)
    method GetEvents (line 154) | public override EventInfo[] GetEvents(BindingFlags bindingAttr)
    method GetField (line 159) | public override FieldInfo GetField(string name, BindingFlags bindingAttr)
    method GetFields (line 179) | public override FieldInfo[] GetFields(BindingFlags bindingAttr)
    method GetInterface (line 202) | public override Type GetInterface(string name, bool ignoreCase)
    method GetInterfaces (line 215) | public override Type[] GetInterfaces()
    method GetMembers (line 226) | public override MemberInfo[] GetMembers(BindingFlags bindingAttr)
    method GetMethods (line 274) | public override MethodInfo[] GetMethods(BindingFlags bindingAttr)
    method GetNestedType (line 300) | public override Type GetNestedType(string name, BindingFlags bindingAttr)
    method GetNestedTypes (line 314) | public override Type[] GetNestedTypes(BindingFlags bindingAttr)
    method GetProperties (line 330) | public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
    method InvokeMember (line 354) | public override object InvokeMember(string name, BindingFlags invokeAt...
    method IsDefined (line 359) | public override bool IsDefined(Type attributeType, bool inherit)
    method GetAttributeFlagsImpl (line 364) | protected override TypeAttributes GetAttributeFlagsImpl()
    method GetConstructorImpl (line 414) | protected override ConstructorInfo GetConstructorImpl(BindingFlags bin...
    method GetMethodImpl (line 474) | protected override MethodInfo GetMethodImpl(string name, BindingFlags ...
    method GetPropertyImpl (line 539) | protected override PropertyInfo GetPropertyImpl(string name, BindingFl...
    method HasElementTypeImpl (line 587) | protected override bool HasElementTypeImpl()
    method IsArrayImpl (line 592) | protected override bool IsArrayImpl()
    method IsByRefImpl (line 597) | protected override bool IsByRefImpl() => _isByRef;
    method IsCOMObjectImpl (line 599) | protected override bool IsCOMObjectImpl()
    method IsPointerImpl (line 604) | protected override bool IsPointerImpl()
    method IsPrimitiveImpl (line 609) | protected override bool IsPrimitiveImpl()
    method ToString (line 635) | public override string ToString()
    method IsAssignableFrom (line 640) | public override bool IsAssignableFrom(Type c)
    method GetHashCode (line 658) | public override int GetHashCode()
    method Equals (line 663) | public override bool Equals(object o)
    method Equals (line 676) | public override bool Equals(Type o)

FILE: src/uController.SourceGenerator/Reflection/SharedUtilities.cs
  class SharedUtilities (line 9) | internal class SharedUtilities
    method GetCustomAttributesData (line 11) | public static IList<CustomAttributeData> GetCustomAttributesData(ISymb...
    method GetMethodAttributes (line 22) | public static MethodAttributes GetMethodAttributes(IMethodSymbol method)
    method MatchBindingFlags (line 62) | public static bool MatchBindingFlags(BindingFlags bindingFlags, ITypeS...
    method ComputeBindingFlags (line 162) | public static BindingFlags ComputeBindingFlags(MemberInfo member)
    method ComputeBindingFlags (line 181) | private static BindingFlags ComputeBindingFlags(bool isPublic, bool is...

FILE: src/uController.SourceGenerator/ReflectionExtensions.cs
  class ReflectionExtensions (line 7) | internal static class ReflectionExtensions
    method GetCustomAttributeData (line 9) | public static CustomAttributeData GetCustomAttributeData(this MemberIn...
    method GetCustomAttributeData (line 14) | public static CustomAttributeData GetCustomAttributeData(this Paramete...
    method GetConstructorArgument (line 19) | public static TValue GetConstructorArgument<TValue>(this CustomAttribu...
    method GetNamedArgument (line 24) | public static TValue GetNamedArgument<TValue>(this CustomAttributeData...

FILE: src/uController.SourceGenerator/RoutePattern.cs
  class RoutePattern (line 7) | class RoutePattern
    method RoutePattern (line 15) | public RoutePattern(string pattern, string[] parameterNames)
    method HasParameter (line 21) | public bool HasParameter(string name) => _parameterNames.Contains(name);
    method ToString (line 23) | public override string ToString() => Pattern;
    method Parse (line 25) | public static RoutePattern Parse(string pattern)

FILE: src/uController.SourceGenerator/WellKnownTypes.cs
  class WellKnownTypes (line 10) | internal class WellKnownTypes
    method WellKnownTypes (line 12) | public WellKnownTypes(MetadataLoadContext metadataLoadContext)

FILE: src/uController.SourceGenerator/uControllerGenerator.cs
  class uControllerGenerator (line 16) | [Generator]
    method Execute (line 28) | public void Execute(GeneratorExecutionContext context)
    method Initialize (line 1034) | public void Initialize(GeneratorInitializationContext context)
    class SyntaxReceiver (line 1039) | private class SyntaxReceiver : ISyntaxReceiver
      method OnVisitSyntaxNode (line 1054) | public void OnVisitSyntaxNode(SyntaxNode syntaxNode)
  class Diagnostics (line 1074) | class Diagnostics

FILE: test/uController.SourceGenerator.Tests/IntegrationTests.cs
  class IntegrationTests (line 23) | public class IntegrationTests
    method MapGet_NoParameters_StringReturn (line 25) | [Fact]
    method MapGet_StringRouteParameters_StringReturn (line 57) | [Fact]
    method MapGet_StringQueryParameters_StringReturn (line 93) | [Fact]
    method MapGet_ImplicitFromService (line 129) | [Fact]
    method MapGetWithNamedFromRouteParameter_UsesFromRouteName (line 156) | [Fact]
    method RequestDelegateInvokesAction (line 260) | [Theory]
    method RequestDelegatePopulatesFromRouteParameterBasedOnParameterName (line 273) | [Fact]
    method SpecifiedRouteParametersDoNotFallbackToQueryString (line 296) | [Fact]
    method SpecifiedQueryParametersDoNotFallbackToRouteValues (line 321) | [Fact]
    method RequestDelegatePopulatesFromRouteOptionalParameter (line 351) | [Fact]
    method RequestDelegatePopulatesFromNullableOptionalParameter (line 370) | [Fact]
    method RequestDelegatePopulatesFromOptionalStringParameter (line 389) | [Fact]
    method Returns400IfNoMatchingRouteValueForRequiredParam (line 407) | [Fact]
    method RequestDelegatePrefersBindAsyncOverTryParse (line 431) | [Fact]
    method RequestDelegatePopulatesFromHeaderParameterBasedOnParameterName (line 451) | [Fact]
    method ImplicitFromBodyActions (line 474) | public static object[][] ImplicitFromBodyActions(bool withAcceptsMetad...
    method ExplicitFromBodyActions (line 527) | public static object[][] ExplicitFromBodyActions(bool withAcceptsMetad...
    method RequestDelegatePopulatesFromBodyParameter (line 567) | [Theory]
    method RequestDelegatePopulatesUnattributedTryParsableParametersFromRouteValue (line 685) | [Theory]
    method RequestDelegatePopulatesParametersFromServiceWithAndWithoutAttribute (line 795) | [Theory]
    method FromFormActions (line 828) | public static object[][] FromFormActions(bool withAcceptsMetadata = fa...
    method PopulatesAcceptsMetadataForRequestBody (line 882) | [Theory]
    method DoesNotPopulateAcceptsMetadataForServices (line 897) | [Theory]
    method SupportsNullableReferenceTypesInParameters (line 912) | [Fact]
    method HandlesQueryParamOptionality (line 958) | [Theory]
    method HandlesRouteParamOptionality (line 1008) | [Theory]
    method HandlesBodyParamOptionality (line 1073) | [Theory]
    method HandleFromServiceOptionality (line 1149) | [Theory]
    method HandleBindAsyncOptionality (line 1238) | [Theory]
    method HandleQueryHandlerTypeDifferentFromResolved (line 1273) | [Theory]
    method GetEndpoint (line 1285) | public async Task<Endpoint> GetEndpoint(string source, IServiceProvide...
    method GetRequestDelegate (line 1307) | private async Task<RequestDelegate> GetRequestDelegate(string source, ...
    method AssertEndpointBehavior (line 1314) | private static async Task AssertEndpointBehavior(
    method CreateInvocationFromCompilation (line 1357) | private static Func<IEndpointRouteBuilder, IEndpointRouteBuilder> Crea...
    method RunGenerator (line 1404) | private static async Task<(GeneratorRunResult, Compilation)> RunGenera...
    method CreateProject (line 1442) | private static Project CreateProject()
    class RequestBodyDetectionFeature (line 1478) | private class RequestBodyDetectionFeature : IHttpRequestBodyDetectionF...
      method RequestBodyDetectionFeature (line 1480) | public RequestBodyDetectionFeature(bool canHaveBody)
    method CreateEndpointBuilder (line 1488) | private static IEndpointRouteBuilder CreateEndpointBuilder(IServicePro...
    class AppLocalResolver (line 1493) | private class AppLocalResolver : ICompilationAssemblyResolver
      method TryResolveAssemblyPaths (line 1495) | public bool TryResolveAssemblyPaths(CompilationLibrary library, List...
    class EmptyServiceProvider (line 1520) | private class EmptyServiceProvider : IServiceScope, IServiceProvider, ...
      method CreateScope (line 1526) | public IServiceScope CreateScope()
      method Dispose (line 1531) | public void Dispose() { }
      method GetService (line 1533) | public object? GetService(Type serviceType)
    class DefaultEndpointRouteBuilder (line 1539) | private class DefaultEndpointRouteBuilder : IEndpointRouteBuilder
      method DefaultEndpointRouteBuilder (line 1541) | public DefaultEndpointRouteBuilder(IApplicationBuilder applicationBu...
      method CreateApplicationBuilder (line 1549) | public IApplicationBuilder CreateApplicationBuilder() => Application...

FILE: test/uController.SourceGenerator.Tests/SharedTypes.cs
  class FromServiceAttribute (line 9) | public class FromServiceAttribute : Attribute, IFromServiceMetadata
  class FromBodyAttribute (line 13) | public class FromBodyAttribute : Attribute, IFromBodyMetadata
  type IMyService (line 18) | public interface IMyService
  class MyService (line 22) | public class MyService : IMyService
  class TodoService (line 25) | public class TodoService
  type MyBindAsyncRecord (line 30) | public record MyBindAsyncRecord(Uri Uri)
  type MySimpleBindAsyncRecord (line 51) | public record MySimpleBindAsyncRecord(Uri Uri)
  type MyNullableBindAsyncStruct (line 64) | public record struct MyNullableBindAsyncStruct(Uri Uri)
  type MySimpleBindAsyncStruct (line 80) | public record struct MySimpleBindAsyncStruct(Uri Uri)
  type ITodo (line 93) | public interface ITodo
  class Todo (line 100) | public class Todo : ITodo
  type TodoStruct (line 107) | public record struct TodoStruct(int Id, string? Name, bool IsComplete) :...
  class TodoJsonConverter (line 109) | public class TodoJsonConverter : JsonConverter<ITodo>
    method Read (line 111) | public override ITodo? Read(ref Utf8JsonReader reader, Type typeToConv...
    method Write (line 143) | public override void Write(Utf8JsonWriter writer, ITodo value, JsonSer...

FILE: test/uController.SourceGenerator.Tests/SourceKey.cs
  type SourceKey (line 3) | public record SourceKey(string Path, int Line);
Condensed preview — 47 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (455K chars).
[
  {
    "path": ".gitattributes",
    "chars": 863,
    "preview": "*.doc  diff=astextplain\n*.DOC\tdiff=astextplain\n*.docx\tdiff=astextplain\n*.DOCX\tdiff=astextplain\n*.dot\tdiff=astextplain\n*."
  },
  {
    "path": ".github/workflows/ci.yaml",
    "chars": 1551,
    "preview": "name: CI\n\non: [push, pull_request]\n\njobs:\n  build:\n    runs-on: windows-latest\n\n    steps:\n    - uses: actions/checkout@"
  },
  {
    "path": ".gitignore",
    "chars": 418,
    "preview": "[Oo]bj/\n[Bb]in/\nTestResults/\n.nuget/\n*.sln.ide/\n_ReSharper.*/\n.idea/\npackages/\nartifacts/\nPublishProfiles/\n.vs/\n*.user\n*"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 872,
    "preview": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 51,
    "preview": "{\n    \"dotnet.defaultSolution\": \"uController.sln\"\n}"
  },
  {
    "path": ".vscode/tasks.json",
    "chars": 1326,
    "preview": "{\n    \"version\": \"2.0.0\",\n    \"tasks\": [\n        {\n            \"label\": \"build\",\n            \"command\": \"dotnet\",\n      "
  },
  {
    "path": "Directory.Build.props",
    "chars": 936,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "GeneratedOutput/RouteBuilderExtensions.g.cs",
    "chars": 193308,
    "preview": "\n//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code "
  },
  {
    "path": "README.md",
    "chars": 637,
    "preview": "## Source generator for minimal APIs\n\nThis source generator should make your ASP.NET Core minimal API application trim a"
  },
  {
    "path": "nuget.config",
    "chars": 192,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <clear />\n    <add key=\"nuget\" value=\"http"
  },
  {
    "path": "samples/.vscode/launch.json",
    "chars": 1389,
    "preview": "{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            // Use IntelliSense to find out which attributes"
  },
  {
    "path": "samples/.vscode/tasks.json",
    "chars": 1128,
    "preview": "{\n    \"version\": \"2.0.0\",\n    \"tasks\": [\n        {\n            \"label\": \"build\",\n            \"command\": \"dotnet\",\n      "
  },
  {
    "path": "samples/MapTodos.cs",
    "chars": 2733,
    "preview": "// using Microsoft.EntityFrameworkCore;\n\npublic static class TodoEndpoints\n{\n    public static void MapTodoEndpoints(th"
  },
  {
    "path": "samples/Program.cs",
    "chars": 4561,
    "preview": "using Microsoft.AspNetCore.Mvc;\nusing Microsoft.Extensions.Primitives;\nusing MinimalApis.Extensions.Binding;\nusing Syst"
  },
  {
    "path": "samples/Sample.csproj",
    "chars": 597,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk.Web\">\n\n  <PropertyGroup>\n    <TargetFramework>net7.0</TargetFramework>\n    <LangVersion"
  },
  {
    "path": "samples/Wrapper.cs",
    "chars": 474,
    "preview": "class Wrapper\n{\n    public static readonly string RoutePattern = \"/foo/{id}\";\n\n    public static readonly Func<string, "
  },
  {
    "path": "samples/appsettings.json",
    "chars": 182,
    "preview": "{\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft\": \"Warning\",\n      \"Microsoft.Hostin"
  },
  {
    "path": "src/uController.SourceGenerator/AnalyzerReleases.Shipped.md",
    "chars": 156,
    "preview": "; Shipped analyzer releases\n; https://github.com/dotnet/roslyn-analyzers/blob/master/src/Microsoft.CodeAnalysis.Analyze"
  },
  {
    "path": "src/uController.SourceGenerator/AnalyzerReleases.Unshipped.md",
    "chars": 519,
    "preview": "; Unshipped analyzer release\n; https://github.com/dotnet/roslyn-analyzers/blob/master/src/Microsoft.CodeAnalysis.Analyz"
  },
  {
    "path": "src/uController.SourceGenerator/AwaitableInfo.cs",
    "chars": 5638,
    "preview": "// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.t"
  },
  {
    "path": "src/uController.SourceGenerator/CodeGenerationTypes.cs",
    "chars": 985,
    "preview": "// This class is a helper with the right type names\n\nnamespace Microsoft.AspNetCore.Http\n{\n    interface IResult { }\n  "
  },
  {
    "path": "src/uController.SourceGenerator/HttpModel.cs",
    "chars": 1729,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\nusing uControlle"
  },
  {
    "path": "src/uController.SourceGenerator/MinimalCodeGenerator.cs",
    "chars": 31192,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.IO.Pipelines;\nusing System.Linq;\nusing Sy"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/MetadataLoadContext.cs",
    "chars": 3930,
    "preview": "using System;\nusing System.Collections.Concurrent;\nusing System.Linq;\nusing System.Reflection;\nusing Microsoft.CodeAnal"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynAssembly.cs",
    "chars": 1522,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\n\n#nullable disab"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynConstructorInfo.cs",
    "chars": 2978,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.Reflection;\nusing Microsoft.Co"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynCustomAttributeData.cs",
    "chars": 2494,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\nusing Microsoft.CodeAnalysi"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynExtensions.cs",
    "chars": 2486,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\n\n#nullable disab"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynFieldInfo.cs",
    "chars": 3255,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.Reflection;\nusing Microsoft.Co"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynMemberInfo.cs",
    "chars": 1448,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\n\nnamespace Rosly"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynMethodInfo.cs",
    "chars": 4161,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Globalization;\nusing System.Reflection;"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynParameterInfo.cs",
    "chars": 1422,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\n\n#nullable disab"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynPropertyInfo.cs",
    "chars": 2923,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.Reflection;\nusing Microsoft.Co"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/RoslynType.cs",
    "chars": 24339,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.Linq;\nusing System.Reflection;"
  },
  {
    "path": "src/uController.SourceGenerator/Reflection/SharedUtilities.cs",
    "chars": 7633,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\n\n#nullable disab"
  },
  {
    "path": "src/uController.SourceGenerator/ReflectionExtensions.cs",
    "chars": 1160,
    "preview": "using System;\nusing System.Linq;\nusing System.Reflection;\n\nnamespace uController\n{\n    internal static class Reflection"
  },
  {
    "path": "src/uController.SourceGenerator/RoutePattern.cs",
    "chars": 1813,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace uController.SourceGenerator\n{\n    class R"
  },
  {
    "path": "src/uController.SourceGenerator/WellKnownTypes.cs",
    "chars": 3019,
    "preview": "using System;\nusing System.Reflection;\nusing Microsoft.AspNetCore.Http;\nusing Microsoft.AspNetCore.Http.Metadata;\nusing"
  },
  {
    "path": "src/uController.SourceGenerator/uController.SourceGenerator.csproj",
    "chars": 1116,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>netstandard2.0</TargetFramework>\n    <LangVer"
  },
  {
    "path": "src/uController.SourceGenerator/uControllerGenerator.cs",
    "chars": 51749,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Collections.Immutable;\nusing System.Linq;\nusing System.Ref"
  },
  {
    "path": "test/uController.SourceGenerator.Tests/IntegrationTests.cs",
    "chars": 59018,
    "preview": "using System.Globalization;\nusing System.Net;\nusing System.Net.Sockets;\nusing System.Numerics;\nusing System.Text.Json;\nu"
  },
  {
    "path": "test/uController.SourceGenerator.Tests/SharedTypes.cs",
    "chars": 4062,
    "preview": "using System.Text.Json.Serialization;\nusing System.Text.Json;\nusing Microsoft.AspNetCore.Http.Metadata;\n\nnamespace uCon"
  },
  {
    "path": "test/uController.SourceGenerator.Tests/SourceKey.cs",
    "chars": 95,
    "preview": "namespace Microsoft.AspNetCore.Builder\n{\n    public record SourceKey(string Path, int Line);\n}"
  },
  {
    "path": "test/uController.SourceGenerator.Tests/Usings.cs",
    "chars": 714,
    "preview": "global using System;\nglobal using System.Collections.Generic;\nglobal using System.IO;\nglobal using System.Linq;\nglobal "
  },
  {
    "path": "test/uController.SourceGenerator.Tests/uController.SourceGenerator.Tests.csproj",
    "chars": 1739,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n\t<PropertyGroup>\n\t\t<TargetFramework>net7.0</TargetFramework>\n\t\t<Nullable>enable</Nul"
  },
  {
    "path": "uController.sln",
    "chars": 3136,
    "preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\nVisualStudioVersion = 17.4.3"
  },
  {
    "path": "version.json",
    "chars": 226,
    "preview": "{\n    \"$schema\": \"https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/ver"
  }
]

About this extraction

This page contains the full source code of the davidfowl/uController GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 47 files (427.6 KB), approximately 83.5k tokens, and a symbol index with 358 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!