From cc3079de15dd32dd24e322b96d87da859fee91b6 Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 29 Dec 2025 13:14:27 -0600 Subject: [PATCH] Initial commit of Jetbrains template --- .gitignore | 5 ++ SDG-Backend-Amberjack.sln | 16 +++++++ SDG-Backend-Amberjack/Program.cs | 47 +++++++++++++++++++ .../Properties/launchSettings.json | 15 ++++++ .../SDG-Backend-Amberjack.csproj | 16 +++++++ .../SDG-Backend-Amberjack.http | 11 +++++ .../appsettings.Development.json | 8 ++++ SDG-Backend-Amberjack/appsettings.json | 9 ++++ 8 files changed, 127 insertions(+) create mode 100644 .gitignore create mode 100644 SDG-Backend-Amberjack.sln create mode 100644 SDG-Backend-Amberjack/Program.cs create mode 100644 SDG-Backend-Amberjack/Properties/launchSettings.json create mode 100644 SDG-Backend-Amberjack/SDG-Backend-Amberjack.csproj create mode 100644 SDG-Backend-Amberjack/SDG-Backend-Amberjack.http create mode 100644 SDG-Backend-Amberjack/appsettings.Development.json create mode 100644 SDG-Backend-Amberjack/appsettings.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..add57be --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +bin/ +obj/ +/packages/ +riderModule.iml +/_ReSharper.Caches/ \ No newline at end of file diff --git a/SDG-Backend-Amberjack.sln b/SDG-Backend-Amberjack.sln new file mode 100644 index 0000000..1ae4a17 --- /dev/null +++ b/SDG-Backend-Amberjack.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDG-Backend-Amberjack", "SDG-Backend-Amberjack\SDG-Backend-Amberjack.csproj", "{6A303E34-4088-4B56-B90C-57D7B2EC0378}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6A303E34-4088-4B56-B90C-57D7B2EC0378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A303E34-4088-4B56-B90C-57D7B2EC0378}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A303E34-4088-4B56-B90C-57D7B2EC0378}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A303E34-4088-4B56-B90C-57D7B2EC0378}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/SDG-Backend-Amberjack/Program.cs b/SDG-Backend-Amberjack/Program.cs new file mode 100644 index 0000000..ee21a0a --- /dev/null +++ b/SDG-Backend-Amberjack/Program.cs @@ -0,0 +1,47 @@ +using System.Text.Json.Serialization; +using Microsoft.AspNetCore.Http.HttpResults; + +var builder = WebApplication.CreateSlimBuilder(args); + +builder.Services.ConfigureHttpJsonOptions(options => +{ + options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default); +}); + +// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +Todo[] sampleTodos = +[ + new(1, "Walk the dog"), + new(2, "Do the dishes", DateOnly.FromDateTime(DateTime.Now)), + new(3, "Do the laundry", DateOnly.FromDateTime(DateTime.Now.AddDays(1))), + new(4, "Clean the bathroom"), + new(5, "Clean the car", DateOnly.FromDateTime(DateTime.Now.AddDays(2))) +]; + +var todosApi = app.MapGroup("/todos"); +todosApi.MapGet("/", () => sampleTodos) + .WithName("GetTodos"); + +todosApi.MapGet("/{id}", Results, NotFound> (int id) => + sampleTodos.FirstOrDefault(a => a.Id == id) is { } todo + ? TypedResults.Ok(todo) + : TypedResults.NotFound()) + .WithName("GetTodoById"); + +app.Run(); + +public record Todo(int Id, string? Title, DateOnly? DueBy = null, bool IsComplete = false); + +[JsonSerializable(typeof(Todo[]))] +internal partial class AppJsonSerializerContext : JsonSerializerContext +{ +} \ No newline at end of file diff --git a/SDG-Backend-Amberjack/Properties/launchSettings.json b/SDG-Backend-Amberjack/Properties/launchSettings.json new file mode 100644 index 0000000..f7e87bd --- /dev/null +++ b/SDG-Backend-Amberjack/Properties/launchSettings.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "todos", + "applicationUrl": "http://localhost:5072", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/SDG-Backend-Amberjack/SDG-Backend-Amberjack.csproj b/SDG-Backend-Amberjack/SDG-Backend-Amberjack.csproj new file mode 100644 index 0000000..5c6b678 --- /dev/null +++ b/SDG-Backend-Amberjack/SDG-Backend-Amberjack.csproj @@ -0,0 +1,16 @@ + + + + net10.0 + enable + enable + SDG_Backend_Amberjack + true + true + + + + + + + diff --git a/SDG-Backend-Amberjack/SDG-Backend-Amberjack.http b/SDG-Backend-Amberjack/SDG-Backend-Amberjack.http new file mode 100644 index 0000000..671553a --- /dev/null +++ b/SDG-Backend-Amberjack/SDG-Backend-Amberjack.http @@ -0,0 +1,11 @@ +@SDG_Backend_Amberjack_HostAddress = http://localhost:5072 + +GET {{SDG_Backend_Amberjack_HostAddress}}/todos/ +Accept: application/json + +### + +GET {{SDG_Backend_Amberjack_HostAddress}}/todos/1 +Accept: application/json + +### diff --git a/SDG-Backend-Amberjack/appsettings.Development.json b/SDG-Backend-Amberjack/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/SDG-Backend-Amberjack/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/SDG-Backend-Amberjack/appsettings.json b/SDG-Backend-Amberjack/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/SDG-Backend-Amberjack/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +}