mirror of
https://github.com/JKorf/CryptoExchange.Net.git
synced 2026-10-15 15:40:52 +00:00
Compare commits
3 Commits
c1af97dd4a
...
6fec65cd6a
| Author | SHA1 | Date | |
|---|---|---|---|
| 6fec65cd6a | |||
| 053bcf6ecc | |||
| 6957ba44f5 |
@@ -198,7 +198,7 @@ namespace CryptoExchange.Net.Clients
|
||||
string? cacheKey = null;
|
||||
if (ShouldCache(definition))
|
||||
{
|
||||
cacheKey = definition.FullUrl + definition + uriParameters?.ToFormData();
|
||||
cacheKey = GetCacheKey(definition, uriParameters);
|
||||
_logger.CheckingCache(cacheKey);
|
||||
var cachedValue = _cache.Get(cacheKey, ClientOptions.CachingMaxAge);
|
||||
if (cachedValue != null)
|
||||
@@ -800,6 +800,13 @@ namespace CryptoExchange.Net.Clients
|
||||
&& definition.Method == HttpMethod.Get
|
||||
&& !definition.PreventCaching;
|
||||
|
||||
/// <summary>
|
||||
/// Produce a unique cache key for the request based on the request definition and parameters.
|
||||
/// </summary>
|
||||
protected virtual string GetCacheKey(RequestDefinition definition, Parameters? parameters)
|
||||
{
|
||||
return definition.FullUrl + definition + parameters?.ToFormData();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public virtual void SetOptions(UpdateOptions options)
|
||||
@@ -889,6 +896,12 @@ namespace CryptoExchange.Net.Clients
|
||||
|
||||
ApiCredentials = (TApiCredentials?)options.ApiCredentials?.Copy() ?? ApiCredentials;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override string GetCacheKey(RequestDefinition definition, Parameters? parameters)
|
||||
{
|
||||
return definition.FullUrl + definition + parameters?.ToFormData() + GetAuthenticationProvider()?.Key;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@@ -289,6 +289,7 @@ namespace CryptoExchange.Net.OrderBook
|
||||
if (!startResult.Success)
|
||||
{
|
||||
Status = OrderBookStatus.Disconnected;
|
||||
_queueEvent.Set();
|
||||
return CallResult.Fail(startResult.Error!);
|
||||
}
|
||||
|
||||
|
||||
@@ -282,8 +282,8 @@ namespace CryptoExchange.Net.Trackers.Klines
|
||||
KlineCount = klines.Count(),
|
||||
FirstOpenTime = klines.First().OpenTime,
|
||||
LastOpenTime = klines.Last().OpenTime,
|
||||
HighPrice = klines.Select(d => d.LowPrice).Max(),
|
||||
LowPrice = klines.Select(d => d.HighPrice).Min(),
|
||||
HighPrice = klines.Select(d => d.HighPrice).Max(),
|
||||
LowPrice = klines.Select(d => d.LowPrice).Min(),
|
||||
#pragma warning disable CS0618 // Type or member is obsolete | Temporary to maintain previous behavior
|
||||
Volume = klines.Select(d => d.Volume).Sum(),
|
||||
AverageVolume = Math.Round(klines.OrderByDescending(d => d.OpenTime).Skip(1).Select(d => d.Volume).DefaultIfEmpty().Average(), 8)
|
||||
|
||||
Reference in New Issue
Block a user