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(); } }
/// <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)); }