internal void WriteToJson(System.Text.Json.Utf8JsonWriter writer)
        {
            writer.WritePropertyName(nameof(PartitionKeys));
            writer.WriteStartArray();
            if (PartitionKeys != null)
            {
                for (int i = 0; i < PartitionKeys.Length; i++)
                {
                    writer.WriteNumberValue(PartitionKeys[i]);
                }
            }
            writer.WriteEndArray();

            writer.WritePropertyName(nameof(ClusteringColumns));
            if (ClusteringColumns != null && ClusteringColumns.Length > 0)
            {
                writer.WriteStartArray();
                for (int i = 0; i < ClusteringColumns.Length; i++)
                {
                    writer.WriteStartObject();
                    writer.WriteNumber("MemberId", ClusteringColumns[i].MemberId);
                    writer.WriteBoolean("OrderByDesc", ClusteringColumns[i].OrderByDesc);
                    writer.WriteEndObject();
                }
                writer.WriteEndArray();
            }
            else
            {
                writer.WriteEmptyArray();
            }
        }
Exemple #2
0
        /// <summary>
        /// Retrieve information about the public ledger.
        /// </summary>
        public async Task <LedgerResponse> Ledger(LedgerRequest request, CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "ledger");

            LedgerSpecification.Write(jsonWriter, request.Ledger);
            jsonWriter.WriteBoolean("binary", true);
            jsonWriter.WriteBoolean("full", request.Full);
            jsonWriter.WriteBoolean("accounts", request.Accounts);
            jsonWriter.WriteBoolean("transactions", request.Transactions);
            jsonWriter.WriteBoolean("expand", request.Expand);
            jsonWriter.WriteBoolean("owner_funds", request.OwnerFunds);
            jsonWriter.WriteBoolean("queue", request.Queue);
            WriteFooter(jsonWriter);
            jsonWriter.WriteEndObject();
            jsonWriter.Flush();
            var response = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken);

            return(new LedgerResponse(response));
        }