[WIP] certs
Test / Run tests (push) Successful in 1m54s

This commit is contained in:
2026-09-14 17:10:48 +02:00
parent 6986f561a9
commit 876a8f9ed7
8 changed files with 245 additions and 6 deletions
+38 -3
View File
@@ -1,3 +1,4 @@
using Microsoft.Data.Sqlite;
using System;
using System.Collections.Generic;
using System.IO;
@@ -68,11 +69,11 @@ namespace Elwig.Helpers {
})
.OrderBy(s => s.Item1).ThenBy(s => s.Item2)];
List<string> toExecute = [];
List<(int ToVersion, string File)> toExecute = [];
var vers = fromVersion;
while (vers < toVersion) {
var (_, to, name) = scripts.Last(s => s.From == vers);
toExecute.Add(name);
toExecute.Add((to, name));
vers = to;
}
if (toExecute.Count == 0)
@@ -87,8 +88,11 @@ namespace Elwig.Helpers {
await cnx.IntegrityCheck();
await cnx.ForeignKeyCheck();
foreach (var script in toExecute) {
foreach (var (to, script) in toExecute) {
await cnx.ExecuteEmbeddedScript(asm, script);
if (to == 42) {
await UpdateDbSchema_41_To_42(cnx);
}
}
await cnx.IntegrityCheck();
@@ -103,5 +107,36 @@ namespace Elwig.Helpers {
File.Delete(backup);
}
}
private static async Task UpdateDbSchema_41_To_42(SqliteConnection cnx) {
List<(int MgNr, int LfbisNr, string Name, string Address, int Plz, string Locality)> members = [];
using (var cmd = cnx.CreateCommand()) {
// TODO
cmd.CommandText = """
SELECT m.mgnr, m.lfbis_nr, '', '', 0, ''
FROM member m
LEFT JOIN member_billing_address a ON a.mgnr = m.mgnr
WHERE organic
""";
using var reader = await cmd.ExecuteReaderAsync();
var header = await reader.GetColumnSchemaAsync();
while (await reader.ReadAsync()) {
members.Add((reader.GetInt32(0), reader.GetInt32(1), reader.GetString(2), reader.GetString(3), reader.GetInt32(4), reader.GetString(5)));
}
}
foreach (var m in members) {
string? oocId = null;
string? authCode = null;
// TODO fetch traces certs
if (oocId != null || authCode != null) {
oocId = oocId == null ? "NULL" : $"'{oocId}'";
authCode = authCode == null ? "NULL" : $"'{authCode}'";
await cnx.ExecuteBatch($"UPDATE member SET ooc_id = {oocId}, org_auth_code = {authCode} WHERE mgnr = {m.MgNr}");
}
}
}
}
}