diff --git a/CryptoExchange.Net/Sockets/Default/SocketConnection.cs b/CryptoExchange.Net/Sockets/Default/SocketConnection.cs index d1e47a0..e2f4915 100644 --- a/CryptoExchange.Net/Sockets/Default/SocketConnection.cs +++ b/CryptoExchange.Net/Sockets/Default/SocketConnection.cs @@ -1103,6 +1103,12 @@ namespace CryptoExchange.Net.Sockets.Default return CallResult.SuccessResult; } + /// + /// Try to subscribe a new subscription by sending the subscribe query and wait for the result as needed + /// + /// The subscription + /// Whether this is a new subscription, or an existing subscription (resubscribing on reconnected socket) + /// Cancellation token protected internal async Task TrySubscribeAsync(Subscription subscription, bool newSubscription, CancellationToken subCancelToken) { subscription.ConnectionInvocations = 0; diff --git a/CryptoExchange.Net/Trackers/UserData/Objects/UserDataSymbolTracker.cs b/CryptoExchange.Net/Trackers/UserData/Objects/UserDataSymbolTracker.cs index 36e3470..9ff50f8 100644 --- a/CryptoExchange.Net/Trackers/UserData/Objects/UserDataSymbolTracker.cs +++ b/CryptoExchange.Net/Trackers/UserData/Objects/UserDataSymbolTracker.cs @@ -7,6 +7,9 @@ using System.Text; namespace CryptoExchange.Net.Trackers.UserData.Objects { + /// + /// Tracker for symbols used in UserDataTracker + /// public class UserDataSymbolTracker { private readonly ILogger _logger; @@ -14,6 +17,9 @@ namespace CryptoExchange.Net.Trackers.UserData.Objects private readonly bool _onlyTrackProvidedSymbols; private readonly object _symbolLock = new object(); + /// + /// ctor + /// public UserDataSymbolTracker(ILogger logger, UserDataTrackerConfig config) { _logger = logger; @@ -21,12 +27,19 @@ namespace CryptoExchange.Net.Trackers.UserData.Objects _onlyTrackProvidedSymbols = config.OnlyTrackProvidedSymbols; } + /// + /// Get currently tracked symbols + /// + /// public IEnumerable GetTrackedSymbols() { lock (_symbolLock) return _trackedSymbols.ToList(); } + /// + /// Check whether a symbol is in the tracked symbols list and should be processed + /// public bool ShouldProcess(SharedSymbol symbol) { if (!_onlyTrackProvidedSymbols) diff --git a/CryptoExchange.Net/Trackers/UserData/UserFuturesDataTracker.cs b/CryptoExchange.Net/Trackers/UserData/UserFuturesDataTracker.cs index e081f78..b7366c5 100644 --- a/CryptoExchange.Net/Trackers/UserData/UserFuturesDataTracker.cs +++ b/CryptoExchange.Net/Trackers/UserData/UserFuturesDataTracker.cs @@ -177,7 +177,7 @@ namespace CryptoExchange.Net.Trackers.UserData SymbolTracker.RemoveTrackedSymbol(symbol); ((FuturesOrderTracker)Orders).ClearDataForSymbol(symbol); - ((FuturesUserTradeTracker)Trades).ClearDataForSymbol(symbol); + ((FuturesUserTradeTracker?)Trades)?.ClearDataForSymbol(symbol); } } } diff --git a/CryptoExchange.Net/Trackers/UserData/UserSpotDataTracker.cs b/CryptoExchange.Net/Trackers/UserData/UserSpotDataTracker.cs index 212ac46..b71a700 100644 --- a/CryptoExchange.Net/Trackers/UserData/UserSpotDataTracker.cs +++ b/CryptoExchange.Net/Trackers/UserData/UserSpotDataTracker.cs @@ -150,7 +150,7 @@ namespace CryptoExchange.Net.Trackers.UserData SymbolTracker.RemoveTrackedSymbol(symbol); ((SpotOrderTracker)Orders).ClearDataForSymbol(symbol); - ((SpotUserTradeTracker)Trades).ClearDataForSymbol(symbol); + ((SpotUserTradeTracker?)Trades)?.ClearDataForSymbol(symbol); } } }