commit 1138291d7978638fb50c12e247ddcaf59ea13310 Author: Jaap-Jan de Wit | DodoTech Date: Tue Jul 28 12:09:14 2026 +0200 Add pristine dotnet new webapi scaffold Baseline commit of the untouched template so the M0 restructure lands as a reviewable diff rather than appearing as the initial state. Includes .gitignore and .gitattributes only; no source changes. diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ce2d48 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,50 @@ +# Normalise line endings: LF in the repo, native on checkout. +* text=auto + +# Source +*.cs text diff=csharp +*.csproj text +*.slnx text +*.props text +*.targets text +*.json text +*.axaml text +*.xaml text +*.ts text +*.js text +*.css text +*.html text +*.md text +*.yml text +*.yaml text +*.sql text + +# Files that must keep LF regardless of platform — shell scripts run in Linux +# containers, and Dockerfiles are read by a Linux daemon. +*.sh text eol=lf +Dockerfile text eol=lf +*.Dockerfile text eol=lf +Caddyfile text eol=lf + +# Windows-only scripts keep CRLF +*.cmd text eol=crlf +*.bat text eol=crlf +*.ps1 text eol=crlf + +# Binary — never diff or convert +*.png binary +*.jpg binary +*.ico binary +*.icns binary +*.gif binary +*.pdf binary +*.zip binary +*.gz binary +*.dll binary +*.so binary +*.dylib binary +*.pfx binary +*.snk binary + +# Test fixtures are byte-exact contracts — never touch their line endings. +tests/fixtures/** -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6127b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,92 @@ +## Build results +[Bb]in/ +[Oo]bj/ +[Oo]ut/ +[Ll]og/ +[Ll]ogs/ +artifacts/ +!artifacts/openapi/ +!artifacts/schema/ + +## .NET / MSBuild +*.user +*.suo +*.userosscache +*.sln.docstates +project.lock.json +project.fragment.lock.json +*.binlog +*.nuget.props +*.nuget.targets +msbuild.log +msbuild.err +msbuild.wrn + +## NuGet +*.nupkg +*.snupkg +.nuget/ +**/packages/* +!**/packages/build/ +# packages.lock.json IS committed — restore --locked-mode depends on it + +## Test / coverage +[Tt]est[Rr]esult*/ +coverage*.json +coverage*.xml +coverage*.info +*.coverage +*.coveragexml +TestResults/ +BenchmarkDotNet.Artifacts/ + +## IDEs +.vs/ +.vscode/* +!.vscode/extensions.json +!.vscode/launch.json +!.vscode/tasks.json +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries/ +.idea/**/shelf/ +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/httpRequests/ +*.DotSettings.user + +## OS +.DS_Store +Thumbs.db +desktop.ini + +## Node (xterm.js bundle in DodoSSH.Client.WebAssets) +node_modules/ +npm-debug.log* +yarn-error.log* +.pnpm-store/ + +## Client build / packaging output +publish/ +Releases/ +*.AppImage +*.dmg +*.deb +*.rpm +*.msix +*.appinstaller + +## Secrets and local config — never commit these +*.pfx +*.p12 +*.snk +appsettings.Local.json +appsettings.*.Local.json +.env +.env.* +!deploy/.env.example +secrets/ diff --git a/.idea/.idea.DodoSSH/.idea/.gitignore b/.idea/.idea.DodoSSH/.idea/.gitignore new file mode 100644 index 0000000..4be7e0e --- /dev/null +++ b/.idea/.idea.DodoSSH/.idea/.gitignore @@ -0,0 +1,15 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/projectSettingsUpdater.xml +/modules.xml +/.idea.DodoSSH.iml +/contentModel.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.DodoSSH/.idea/encodings.xml b/.idea/.idea.DodoSSH/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.DodoSSH/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.DodoSSH/.idea/indexLayout.xml b/.idea/.idea.DodoSSH/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.DodoSSH/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/DodoSSH.slnx b/DodoSSH.slnx new file mode 100644 index 0000000..296747e --- /dev/null +++ b/DodoSSH.slnx @@ -0,0 +1,3 @@ + + + diff --git a/DodoSSH/DodoSSH.csproj b/DodoSSH/DodoSSH.csproj new file mode 100644 index 0000000..78bc66b --- /dev/null +++ b/DodoSSH/DodoSSH.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + enable + enable + + + + + + + diff --git a/DodoSSH/DodoSSH.http b/DodoSSH/DodoSSH.http new file mode 100644 index 0000000..b5aeecc --- /dev/null +++ b/DodoSSH/DodoSSH.http @@ -0,0 +1,6 @@ +@DodoSSH_HostAddress = http://localhost:5233 + +GET {{DodoSSH_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/DodoSSH/Program.cs b/DodoSSH/Program.cs new file mode 100644 index 0000000..d5e0ef3 --- /dev/null +++ b/DodoSSH/Program.cs @@ -0,0 +1,41 @@ +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.UseHttpsRedirection(); + +var summaries = new[] +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + +app.MapGet("/weatherforecast", () => + { + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + return forecast; + }) + .WithName("GetWeatherForecast"); + +app.Run(); + +record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} \ No newline at end of file diff --git a/DodoSSH/Properties/launchSettings.json b/DodoSSH/Properties/launchSettings.json new file mode 100644 index 0000000..e3048d6 --- /dev/null +++ b/DodoSSH/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://localhost:5233", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7217;http://localhost:5233", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/DodoSSH/appsettings.Development.json b/DodoSSH/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/DodoSSH/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/DodoSSH/appsettings.json b/DodoSSH/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/DodoSSH/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/global.json b/global.json new file mode 100644 index 0000000..90e5a42 --- /dev/null +++ b/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "10.0.0", + "rollForward": "latestMinor", + "allowPrerelease": false + } +} \ No newline at end of file