예제 #1
0
        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;
            }
        }