

namespace MyNamespace
{
    using System = global::System;

    public interface ITestController
    {



        System.Threading.Tasks.Task<string> FooAsync(string test, bool test2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));


        System.Threading.Tasks.Task BarAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));

    }


    public partial class TestController : Microsoft.AspNetCore.Mvc.ControllerBase
    {
        private ITestController _implementation;

        public TestController(ITestController implementation)
        {
            _implementation = implementation;
        }

        [Microsoft.AspNetCore.Mvc.HttpPost, Microsoft.AspNetCore.Mvc.Route("Foo")]
        public System.Threading.Tasks.Task<string> Foo([Microsoft.AspNetCore.Mvc.FromQuery] string test, [Microsoft.AspNetCore.Mvc.FromQuery] bool test2, System.Threading.CancellationToken cancellationToken)
        {

            return _implementation.FooAsync(test, test2, cancellationToken);
        }

        [Microsoft.AspNetCore.Mvc.HttpPost, Microsoft.AspNetCore.Mvc.Route("Bar")]
        public System.Threading.Tasks.Task Bar(System.Threading.CancellationToken cancellationToken)
        {

            return _implementation.BarAsync(cancellationToken);
        }

    }

    


}
