Beispiel #1
0
        public async Task <FluentResults.Result <string> > QueryWithVars(string queryString, Dictionary <string, string> varMap)
        {
            AssertNotDisposed();

            if (TransactionState != TransactionState.OK)
            {
                return(Results.Fail <string>(new TransactionFinished(TransactionState.ToString())));
            }

            try {
                Api.Request request = new Api.Request();
                request.Query = queryString;
                request.Vars.Add(varMap);
                request.StartTs = Context.StartTs;

                var queryResponse = await Client.Query(request);

                var err = MergeContext(queryResponse.Txn);

                if (err.IsSuccess)
                {
                    return(Results.Ok <string>(queryResponse.Json.ToStringUtf8()));
                }
                else
                {
                    return(err.ToResult <string>());
                }
            } catch (RpcException rpcEx) {
                return(Results.Fail <string>(new FluentResults.ExceptionalError(rpcEx)));
            }
        }