diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs index 00dd3018..e30f1135 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Asset info /// + [DebuggerDisplay("{Name,nq} - {Networks.Length} network(s)")] public record SharedAsset { /// @@ -32,6 +34,7 @@ namespace CryptoExchange.Net.SharedApis /// /// Asset network info /// + [DebuggerDisplay("{Name,nq}")] public record SharedAssetNetwork { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs index c3fb93d3..2506e76b 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Balance info /// + [DebuggerDisplay("{Available} {Asset, nq}")] public record SharedBalance { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs index 7a67a10f..de7901ae 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Book ticker /// + [DebuggerDisplay("{Symbol,nq} - {BestBidPrice} / {BestAskPrice}")] public record SharedBookTicker : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs index c0232d52..42f41fb9 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Deposit info /// + [DebuggerDisplay("[{Timestamp}] {Quantity} {Asset,nq}")] public record SharedDeposit { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs index 871d23f6..3baf0f62 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Deposit address info /// + [DebuggerDisplay("{Asset,nq} - {Address,nq}")] public record SharedDepositAddress { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs index 7f2e24da..38d687d2 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Trading fee info /// + [DebuggerDisplay("{MakerFee} / {TakerFee}")] public record SharedFee { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs index 34547360..ca7a5408 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Funding rate /// + [DebuggerDisplay("[{Timestamp}] {FundingRate}")] public record SharedFundingRate { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs index af2db3b7..b9822c09 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Mark/index price kline /// + [DebuggerDisplay("[{OpenTime}] O: {OpenPrice} H: {HighPrice} L: {LowPrice} C: {ClosePrice}")] public record SharedFuturesKline : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs index 38afc311..e2e8e9cd 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs @@ -1,12 +1,19 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Futures order info /// + [DebuggerDisplay("{DebugView,nq}")] public record SharedFuturesOrder : SharedSymbolModel { + private string DebugView => + $"[{CreateTime}] {OrderId} {(PositionSide != null ? $"{PositionSide} " : "")}{Symbol} - " + + $"{OrderType} {Side} {OrderQuantity}{(OrderPrice != null ? " @ " + OrderPrice : "")}, " + + $"{Status}{(QuantityFilled != null && Status != SharedOrderStatus.Canceled ? $" {QuantityFilled}" : "")}{(AveragePrice != null ? " @ " + AveragePrice : "")}"; + /// /// Id of the order /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs index 7f24acd8..a8718cf2 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs @@ -1,12 +1,17 @@ using System; +using System.Diagnostics; +using System.Drawing; namespace CryptoExchange.Net.SharedApis { /// /// Futures symbol info /// + [DebuggerDisplay("{DebugView,nq}")] public record SharedFuturesSymbol : SharedSpotSymbol { + private string DebugView => $"{TradingMode} {Name}{(DeliveryTime != null ? $" Delivery: {DeliveryTime:yyyy-MM-dd}": "")}"; + /// /// The size of a single contract /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs index cfd69158..d569458d 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Futures ticker info /// + [DebuggerDisplay("{Symbol,nq} High: {HighPrice}, Low: {LowPrice}, Last: {LastPrice}, Change: {ChangePercentage}%")] public record SharedFuturesTicker: SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs index 1101aa6e..0af19b31 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Kline info /// + [DebuggerDisplay("[{OpenTime}] O: {OpenPrice} H: {HighPrice} L: {LowPrice} C: {ClosePrice} V: {Volume}")] public record SharedKline : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs index de8c5fdd..29588d27 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Position info /// + [DebuggerDisplay("{Symbol,nq} {PositionSide}: {PositionSize} {AverageOpenPrice}")] public record SharedPosition : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs index e4f12613..94b8ccf5 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Position history /// + [DebuggerDisplay("[{Timestamp}] {Symbol,nq} {PositionSide}: {RealizedPnl}")] public record SharedPositionHistory : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs index 577232f3..afb41850 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs @@ -1,12 +1,19 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Spot order info /// + [DebuggerDisplay("{DebugView,nq}")] public record SharedSpotOrder : SharedSymbolModel { + private string DebugView => + $"[{CreateTime}] {OrderId} {Symbol} - " + + $"{OrderType} {Side} {OrderQuantity}{(OrderPrice != null ? " @ " + OrderPrice : "")}, " + + $"{Status}{(QuantityFilled != null && Status != SharedOrderStatus.Canceled ? $" {QuantityFilled}" : "")}{(AveragePrice != null ? " @ " + AveragePrice : "")}"; + /// /// The id of the order /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs index ef8a9bda..2233f7b7 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Symbol info /// + [DebuggerDisplay("{TradingMode} {Name,nq}")] public record SharedSpotSymbol { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs index c19ee013..35ab1dee 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs @@ -1,8 +1,11 @@ -namespace CryptoExchange.Net.SharedApis +using System.Diagnostics; + +namespace CryptoExchange.Net.SharedApis { /// /// Ticker info /// + [DebuggerDisplay("{Symbol,nq} High: {HighPrice}, Low: {LowPrice}, Last: {LastPrice}, Change: {ChangePercentage}%")] public record SharedSpotTicker: SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs index 008e38fa..aa7508ef 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// Public trade info /// + [DebuggerDisplay("[{Timestamp}] {Symbol,nq} {Side.ToString(),nq} {Quantity} @ {Price}")] public record SharedTrade : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs index b3b0fb08..86ed621e 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// A user trade /// + [DebuggerDisplay("[{Timestamp}] {Id,nq} {Symbol,nq} {Side.ToString(),nq} {Quantity} @ {Price}")] public record SharedUserTrade : SharedSymbolModel { /// diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs index ec9aad7d..4add88bd 100644 --- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs +++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs @@ -1,10 +1,12 @@ using System; +using System.Diagnostics; namespace CryptoExchange.Net.SharedApis { /// /// A withdrawal record /// + [DebuggerDisplay("[{Timestamp}] {Quantity} {Asset,nq}")] public record SharedWithdrawal { /// diff --git a/CryptoExchange.Net/SharedApis/SharedQuantity.cs b/CryptoExchange.Net/SharedApis/SharedQuantity.cs index 0b5f36da..67a1660c 100644 --- a/CryptoExchange.Net/SharedApis/SharedQuantity.cs +++ b/CryptoExchange.Net/SharedApis/SharedQuantity.cs @@ -1,4 +1,5 @@ using CryptoExchange.Net.Converters.SystemTextJson; +using System.Text; using System.Text.Json.Serialization; namespace CryptoExchange.Net.SharedApis @@ -35,6 +36,33 @@ namespace CryptoExchange.Net.SharedApis QuantityInQuoteAsset = quoteAssetQuantity; QuantityInContracts = contractQuantity; } + + /// + public override string ToString() + { + var sb = new StringBuilder("["); + if (QuantityInBaseAsset != null) + sb.Append($"{QuantityInBaseAsset} base"); + + if (QuantityInQuoteAsset != null) + { + if (sb.Length > 1) + sb.Append(", "); + + sb.Append($"{QuantityInQuoteAsset} quote"); + } + + if (QuantityInContracts != null) + { + if (sb.Length > 1) + sb.Append(", "); + + sb.Append($"{QuantityInContracts} contracts"); + } + + sb.Append("]"); + return sb.ToString(); + } } /// @@ -53,6 +81,9 @@ namespace CryptoExchange.Net.SharedApis /// public SharedQuantity() : base(null, null, null) { } + /// + public override string ToString() => base.ToString(); + /// /// Specify quantity in base asset /// @@ -123,5 +154,8 @@ namespace CryptoExchange.Net.SharedApis : base(baseAssetQuantity, quoteAssetQuantity, contractQuantity) { } + + /// + public override string ToString() => base.ToString(); } }