diff --git a/csharp/effinitive-framework/Program.cs b/csharp/effinitive-framework/Program.cs new file mode 100644 index 00000000000..dec34472693 --- /dev/null +++ b/csharp/effinitive-framework/Program.cs @@ -0,0 +1,55 @@ +using EffinitiveFramework.Core; + +var app = EffinitiveApp + .Create() + .UsePort(3000) + .MapEndpoints() + .Build(); + +await app.RunAsync(); + +public class RootEndpoint : AsyncEndpointBase +{ + protected override string Method => "GET"; + protected override string Route => "/"; + + public override Task HandleAsync( + EmptyRequest request, + CancellationToken cancellationToken = default) + { + return Task.FromResult(new EmptyResponse()); + } +} + +public class GetUserEndpoint : AsyncEndpointBase +{ + protected override string Method => "GET"; + protected override string Route => "/user/{id}"; + + public override Task HandleAsync( + UserIdRequest request, + CancellationToken cancellationToken = default) + { + return Task.FromResult(request.Id); + } +} + +public class CreateUserEndpoint : AsyncEndpointBase +{ + protected override string Method => "POST"; + protected override string Route => "/user"; + + public override Task HandleAsync( + EmptyRequest request, + CancellationToken cancellationToken = default) + { + return Task.FromResult(new EmptyResponse()); + } +} + +public class EmptyRequest { } +public class EmptyResponse { } +public class UserIdRequest +{ + public string Id { get; set; } = string.Empty; +} diff --git a/csharp/effinitive-framework/config.yaml b/csharp/effinitive-framework/config.yaml new file mode 100644 index 00000000000..7718d001122 --- /dev/null +++ b/csharp/effinitive-framework/config.yaml @@ -0,0 +1,3 @@ +framework: + github: HBartosch/Effinitive + version: 1.0 diff --git a/csharp/effinitive-framework/web.csproj b/csharp/effinitive-framework/web.csproj new file mode 100644 index 00000000000..504843f902e --- /dev/null +++ b/csharp/effinitive-framework/web.csproj @@ -0,0 +1,10 @@ + + + net10.0 + enable + + + + + +