1
0
mirror of https://github.com/JKorf/CryptoExchange.Net.git synced 2026-08-11 08:22:53 +00:00

Added DebuggerDisplay attributes to Shared models

This commit is contained in:
Jkorf
2026-07-14 09:59:02 +02:00
parent 38a7b981ce
commit ecd00ea707
21 changed files with 100 additions and 6 deletions
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Asset info
/// </summary>
[DebuggerDisplay("{Name,nq} - {Networks.Length} network(s)")]
public record SharedAsset
{
/// <summary>
@@ -32,6 +34,7 @@ namespace CryptoExchange.Net.SharedApis
/// <summary>
/// Asset network info
/// </summary>
[DebuggerDisplay("{Name,nq}")]
public record SharedAssetNetwork
{
/// <summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Balance info
/// </summary>
[DebuggerDisplay("{Available} {Asset, nq}")]
public record SharedBalance
{
/// <summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Book ticker
/// </summary>
[DebuggerDisplay("{Symbol,nq} - {BestBidPrice} / {BestAskPrice}")]
public record SharedBookTicker : SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Deposit info
/// </summary>
[DebuggerDisplay("[{Timestamp}] {Quantity} {Asset,nq}")]
public record SharedDeposit
{
/// <summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Deposit address info
/// </summary>
[DebuggerDisplay("{Asset,nq} - {Address,nq}")]
public record SharedDepositAddress
{
/// <summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Trading fee info
/// </summary>
[DebuggerDisplay("{MakerFee} / {TakerFee}")]
public record SharedFee
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Funding rate
/// </summary>
[DebuggerDisplay("[{Timestamp}] {FundingRate}")]
public record SharedFundingRate
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Mark/index price kline
/// </summary>
[DebuggerDisplay("[{OpenTime}] O: {OpenPrice} H: {HighPrice} L: {LowPrice} C: {ClosePrice}")]
public record SharedFuturesKline : SharedSymbolModel
{
/// <summary>
@@ -1,12 +1,19 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Futures order info
/// </summary>
[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 : "")}";
/// <summary>
/// Id of the order
/// </summary>
@@ -1,12 +1,17 @@
using System;
using System.Diagnostics;
using System.Drawing;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Futures symbol info
/// </summary>
[DebuggerDisplay("{DebugView,nq}")]
public record SharedFuturesSymbol : SharedSpotSymbol
{
private string DebugView => $"{TradingMode} {Name}{(DeliveryTime != null ? $" Delivery: {DeliveryTime:yyyy-MM-dd}": "")}";
/// <summary>
/// The size of a single contract
/// </summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Futures ticker info
/// </summary>
[DebuggerDisplay("{Symbol,nq} High: {HighPrice}, Low: {LowPrice}, Last: {LastPrice}, Change: {ChangePercentage}%")]
public record SharedFuturesTicker: SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Kline info
/// </summary>
[DebuggerDisplay("[{OpenTime}] O: {OpenPrice} H: {HighPrice} L: {LowPrice} C: {ClosePrice} V: {Volume}")]
public record SharedKline : SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Position info
/// </summary>
[DebuggerDisplay("{Symbol,nq} {PositionSide}: {PositionSize} {AverageOpenPrice}")]
public record SharedPosition : SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Position history
/// </summary>
[DebuggerDisplay("[{Timestamp}] {Symbol,nq} {PositionSide}: {RealizedPnl}")]
public record SharedPositionHistory : SharedSymbolModel
{
/// <summary>
@@ -1,12 +1,19 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Spot order info
/// </summary>
[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 : "")}";
/// <summary>
/// The id of the order
/// </summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Symbol info
/// </summary>
[DebuggerDisplay("{TradingMode} {Name,nq}")]
public record SharedSpotSymbol
{
/// <summary>
@@ -1,8 +1,11 @@
namespace CryptoExchange.Net.SharedApis
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Ticker info
/// </summary>
[DebuggerDisplay("{Symbol,nq} High: {HighPrice}, Low: {LowPrice}, Last: {LastPrice}, Change: {ChangePercentage}%")]
public record SharedSpotTicker: SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// Public trade info
/// </summary>
[DebuggerDisplay("[{Timestamp}] {Symbol,nq} {Side.ToString(),nq} {Quantity} @ {Price}")]
public record SharedTrade : SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// A user trade
/// </summary>
[DebuggerDisplay("[{Timestamp}] {Id,nq} {Symbol,nq} {Side.ToString(),nq} {Quantity} @ {Price}")]
public record SharedUserTrade : SharedSymbolModel
{
/// <summary>
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
/// <summary>
/// A withdrawal record
/// </summary>
[DebuggerDisplay("[{Timestamp}] {Quantity} {Asset,nq}")]
public record SharedWithdrawal
{
/// <summary>
@@ -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;
}
/// <inheritdoc />
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();
}
}
/// <summary>
@@ -53,6 +81,9 @@ namespace CryptoExchange.Net.SharedApis
/// </summary>
public SharedQuantity() : base(null, null, null) { }
/// <inheritdoc />
public override string ToString() => base.ToString();
/// <summary>
/// Specify quantity in base asset
/// </summary>
@@ -123,5 +154,8 @@ namespace CryptoExchange.Net.SharedApis
: base(baseAssetQuantity, quoteAssetQuantity, contractQuantity)
{
}
/// <inheritdoc />
public override string ToString() => base.ToString();
}
}