save progress

This commit is contained in:
StellaOps Bot
2025-12-18 09:53:46 +02:00
parent 28823a8960
commit 7d5250238c
87 changed files with 9750 additions and 2026 deletions

View File

@@ -4,7 +4,6 @@ using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace StellaOps.Scanner.WebService.Infrastructure;
@@ -29,25 +28,56 @@ internal static class ProblemResultFactory
var traceId = Activity.Current?.TraceId.ToString() ?? context.TraceIdentifier;
var problem = new ProblemDetails
var mergedExtensions = new Dictionary<string, object?>(StringComparer.Ordinal)
{
["traceId"] = traceId
};
if (extensions is not null)
{
foreach (var entry in extensions)
{
if (string.IsNullOrWhiteSpace(entry.Key))
{
continue;
}
mergedExtensions[entry.Key] = entry.Value;
}
}
var problem = new ProblemDocument
{
Type = type,
Title = title,
Detail = detail,
Status = statusCode,
Instance = context.Request.Path
Instance = context.Request.Path,
Extensions = mergedExtensions
};
problem.Extensions["traceId"] = traceId;
if (extensions is not null)
{
foreach (var entry in extensions)
{
problem.Extensions[entry.Key] = entry.Value;
}
}
var payload = JsonSerializer.Serialize(problem, JsonOptions);
return Results.Content(payload, "application/problem+json", Encoding.UTF8, statusCode);
}
private sealed class ProblemDocument
{
[JsonPropertyName("type")]
public string? Type { get; init; }
[JsonPropertyName("title")]
public string? Title { get; init; }
[JsonPropertyName("detail")]
public string? Detail { get; init; }
[JsonPropertyName("status")]
public int Status { get; init; }
[JsonPropertyName("instance")]
public string? Instance { get; init; }
[JsonPropertyName("extensions")]
public Dictionary<string, object?>? Extensions { get; init; }
}
}