mirror of
https://github.com/JKorf/CryptoExchange.Net.git
synced 2026-10-22 11:00:58 +00:00
Fixed UserDataTracker config not getting set correctly, added warning for missing tracked symbols if open orders request requires it
This commit is contained in:
@@ -28,10 +28,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
SharedAccountType accountType,
|
||||
TrackerItemConfig config,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Balances, restClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Balances, restClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_restClient = restClient;
|
||||
_socketClient = socketClient;
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
private readonly Dictionary<string, int> _openOrderNotReturnedTimes = new();
|
||||
private readonly TimeSpan _pollOverlapPeriod = TimeSpan.FromSeconds(3);
|
||||
|
||||
private bool _openOrderWarningDone = false;
|
||||
internal event Func<UpdateSource, SharedUserTrade[], Task>? OnTradeUpdate;
|
||||
|
||||
/// <summary>
|
||||
@@ -39,10 +40,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
IEnumerable<SharedSymbol> symbols,
|
||||
bool onlyTrackProvidedSymbols,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Orders, openRestClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Orders, openRestClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_openOrdersClient = openRestClient;
|
||||
_closedOrdersClient = closedRestClient;
|
||||
@@ -234,7 +236,14 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var symbol in _symbolTracker.GetTrackedSymbols())
|
||||
var trackedSymbols = _symbolTracker.GetTrackedSymbols();
|
||||
if (!_openOrderWarningDone && trackedSymbols.Count() == 0)
|
||||
{
|
||||
_openOrderWarningDone = true;
|
||||
_logger.LogDebug("No tracked symbols specified while symbol is required to retrieve open orders. Tracked symbols should be updated before orders may be returned");
|
||||
}
|
||||
|
||||
foreach (var symbol in trackedSymbols)
|
||||
{
|
||||
var openOrdersResult = await _openOrdersClient.GetOpenFuturesOrdersAsync(new GetOpenOrdersRequest(symbol, exchangeParameters: _exchangeParameters)).ConfigureAwait(false);
|
||||
if (!openOrdersResult.Success)
|
||||
|
||||
@@ -34,10 +34,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
IEnumerable<SharedSymbol> symbols,
|
||||
bool onlyTrackProvidedSymbols,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Trades, restClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Trades, restClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_restClient = restClient;
|
||||
_socketClient = socketClient;
|
||||
|
||||
@@ -37,10 +37,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
bool onlyTrackProvidedSymbols,
|
||||
bool websocketPositionUpdatesAreFullSnapshots,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Positions, restClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Positions, restClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_restClient = restClient;
|
||||
_socketClient = socketClient;
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
private readonly bool _timeFilterSupportedClosedOrders;
|
||||
private readonly Dictionary<string, int> _openOrderNotReturnedTimes = new();
|
||||
private readonly TimeSpan _pollOverlapPeriod = TimeSpan.FromSeconds(3);
|
||||
private bool _openOrderWarningDone = false;
|
||||
|
||||
internal event Func<UpdateSource, SharedUserTrade[], Task>? OnTradeUpdate;
|
||||
|
||||
@@ -39,10 +40,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
IEnumerable<SharedSymbol> symbols,
|
||||
bool onlyTrackProvidedSymbols,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Orders, openOrderClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Orders, openOrderClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_openOrderClient = openOrderClient;
|
||||
_closedOrderClient = closedOrderClient;
|
||||
@@ -244,7 +246,14 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var symbol in _symbolTracker.GetTrackedSymbols())
|
||||
var trackedSymbols = _symbolTracker.GetTrackedSymbols();
|
||||
if (!_openOrderWarningDone && trackedSymbols.Count() == 0)
|
||||
{
|
||||
_openOrderWarningDone = true;
|
||||
_logger.LogDebug("No tracked symbols specified while symbol is required to retrieve open orders. Tracked symbols should be updated before orders may be returned");
|
||||
}
|
||||
|
||||
foreach (var symbol in trackedSymbols)
|
||||
{
|
||||
var openOrdersResult = await _openOrderClient.GetOpenSpotOrdersAsync(new GetOpenOrdersRequest(symbol, exchangeParameters: _exchangeParameters)).ConfigureAwait(false);
|
||||
if (!openOrdersResult.Success)
|
||||
|
||||
@@ -34,10 +34,11 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
IEnumerable<SharedSymbol> symbols,
|
||||
bool onlyTrackProvidedSymbols,
|
||||
ExchangeParameters? exchangeParameters = null
|
||||
) : base(logger, symbolTracker, UserDataType.Trades, restClient.Exchange, config)
|
||||
) : base(logger, symbolTracker, UserDataType.Trades, restClient.Exchange)
|
||||
{
|
||||
if (_socketClient == null)
|
||||
if (socketClient == null)
|
||||
config = config with { PollIntervalConnected = config.PollIntervalDisconnected };
|
||||
SetConfig(config);
|
||||
|
||||
_restClient = restClient;
|
||||
_socketClient = socketClient;
|
||||
|
||||
@@ -242,15 +242,21 @@ namespace CryptoExchange.Net.Trackers.UserData.ItemTrackers
|
||||
ILogger logger,
|
||||
UserDataSymbolTracker symbolTracker,
|
||||
UserDataType dataType,
|
||||
string exchange,
|
||||
TrackerItemConfig config) : base(logger, dataType, exchange)
|
||||
string exchange) : base(logger, dataType, exchange)
|
||||
{
|
||||
_isSymbolModel = typeof(T).IsSubclassOf(typeof(SharedSymbolModel));
|
||||
_symbolTracker = symbolTracker;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the tracker item config
|
||||
/// </summary>
|
||||
protected void SetConfig(TrackerItemConfig config)
|
||||
{
|
||||
_pollIntervalDisconnected = config.PollIntervalDisconnected;
|
||||
_pollIntervalConnected = config.PollIntervalConnected;
|
||||
_pollAtStart = config.PollAtStart;
|
||||
_retentionTime = config is TrackerTimedItemConfig timeConfig ? timeConfig.RetentionTime : TimeSpan.MaxValue;
|
||||
_isSymbolModel = typeof(T).IsSubclassOf(typeof(SharedSymbolModel));
|
||||
_symbolTracker = symbolTracker;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user