async Task HandleInvoke(BDictionary msg, CancellationTokenSource cts) { if (!(msg.TryGetNonBlankString("id", out var id) && msg.TryGetNonBlankString("var", out var varname))) { await SendException(id, "Missing \"id\" and/or \"var\" keys in \"invoke\" operation payload"); return; } switch (varname) { case "pod.xledger.sql-server/execute!": await HandleVar_Execute(id, msg); break; case "pod.xledger.sql-server/execute-one!": await HandleVar_ExecuteOne(id, msg); break; case "pod.xledger.sql-server/execute-raw!": await HandleVar_ExecuteRaw(id, msg); break; default: await SendException(id, $"No such var: \"{varname}\""); break; } }