summary refs log tree commit diff
path: root/extra/admin-api/Utilities/ConfigTest/Worker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Utilities/ConfigTest/Worker.cs')
-rw-r--r--extra/admin-api/Utilities/ConfigTest/Worker.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/extra/admin-api/Utilities/ConfigTest/Worker.cs b/extra/admin-api/Utilities/ConfigTest/Worker.cs
new file mode 100644

index 00000000..ec8988fa --- /dev/null +++ b/extra/admin-api/Utilities/ConfigTest/Worker.cs
@@ -0,0 +1,43 @@ +using System.Text.Json.Nodes; +using Spacebar.ConfigModel.Extensions; +using Spacebar.Models.Db.Contexts; + +namespace ConfigTest; + +public class Worker(ILogger<Worker> logger, SpacebarDbContext db) : BackgroundService +{ + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + var config = db.Configs + .OrderBy(x => x.Key) + .ToDictionary(x => x.Key, x => x.Value); + foreach (var (key, value) in config) + { + Console.WriteLine("Config Key: {0}, Value: {1}", key, value ?? "[NULL]"); + } + + var readConfig = config.ToNestedJsonObject(); + Console.WriteLine(readConfig); + var mapped = readConfig.ToFlatKv(); + foreach (var (key, value) in mapped) + { + Console.WriteLine("Mapped Key: {0}, Value: {1}", key, value ?? "[NULL]"); + } + + // check that they're equal + foreach (var (key, value) in config) + { + if (!mapped.ContainsKey(key)) + { + Console.WriteLine("Missing Key in Mapped: {0}", key); + continue; + } + + if (mapped[key] != value) + { + Console.WriteLine("Value Mismatch for Key: {0}, Original: {1}, Mapped: {2}", key, value ?? "[NULL]", mapped[key] ?? "[NULL]"); + } + } + Environment.Exit(0); + } +} \ No newline at end of file