Resolve all 46 low-severity architecture review findings

This commit is contained in:
Joseph Doherty
2026-09-09 22:56:36 -04:00
parent fef3e7675f
commit 9ee402bbcd
139 changed files with 2621 additions and 1082 deletions
@@ -10,8 +10,19 @@ internal static class ConfigLoader
/// <summary>Deserialize the <c>appsettings.json</c> text via the source-gen context.</summary>
/// <param name="jsonText">The raw JSON text of <c>appsettings.json</c>.</param>
/// <returns>The deserialized <see cref="NotifierConfig"/>, or a default instance if deserialization yields <c>null</c>.</returns>
public static NotifierConfig Load(string jsonText) =>
JsonSerializer.Deserialize(jsonText, NotifierJsonContext.Default.NotifierConfig) ?? new NotifierConfig();
public static NotifierConfig Load(string jsonText)
{
var config = JsonSerializer.Deserialize(jsonText, NotifierJsonContext.Default.NotifierConfig) ?? new NotifierConfig();
var urls = SplitBaseUrls(config.ScadaBridge.BaseUrls);
for (var i = 0; i < urls.Length; i++)
{
if (!Uri.TryCreate(urls[i], UriKind.Absolute, out var uri)
|| (uri.Scheme != Uri.UriSchemeHttp && uri.Scheme != Uri.UriSchemeHttps)
|| string.IsNullOrWhiteSpace(uri.Host))
throw new InvalidOperationException($"ScadaBridge:BaseUrls entry {i + 1} must be an absolute HTTP(S) URI.");
}
return config;
}
/// <summary>Read and parse the <c>appsettings.json</c> sitting next to the executable.</summary>
/// <returns>The deserialized <see cref="NotifierConfig"/>.</returns>