Fix datetime

This commit is contained in:
2025-09-14 17:33:45 +07:00
parent 7809e45b28
commit a922ae961a
3 changed files with 14 additions and 16 deletions

View File

@@ -42,11 +42,7 @@ public class CandleStoreGrain : Grain, ICandleStoreGrain, IAsyncObserver<Candle>
// Parse the grain key to extract exchange, ticker, and timeframe
var (exchange, ticker, timeframe) = CandleHelpers.ParseCandleStoreGrainKey(grainKey);
// Initialize state if empty
if (_state.State.Candles == null || _state.State.Candles.Count == 0)
{
await LoadInitialCandlesAsync(exchange, ticker, timeframe);
}
await LoadInitialCandlesAsync(exchange, ticker, timeframe);
// Subscribe to the price stream
await SubscribeToPriceStreamAsync(grainKey);
@@ -55,15 +51,16 @@ public class CandleStoreGrain : Grain, ICandleStoreGrain, IAsyncObserver<Candle>
}
catch (Exception ex)
{
_logger.LogError(ex, "Error during CandleStoreGrain activation for key: {GrainKey}", this.GetPrimaryKeyString());
_logger.LogError(ex, "Error during CandleStoreGrain activation for key: {GrainKey}",
this.GetPrimaryKeyString());
// Ensure state is initialized even if there's an error
if (_state.State.Candles == null)
{
_state.State.Candles = new List<Candle>();
await _state.WriteStateAsync();
}
throw; // Re-throw to let Orleans handle the activation failure
}
}
@@ -87,10 +84,11 @@ public class CandleStoreGrain : Grain, ICandleStoreGrain, IAsyncObserver<Candle>
// Ensure state is initialized
if (_state.State.Candles == null)
{
_logger.LogWarning("State not initialized for grain {GrainKey}, returning empty list", this.GetPrimaryKeyString());
_logger.LogWarning("State not initialized for grain {GrainKey}, returning empty list",
this.GetPrimaryKeyString());
return Task.FromResult(new List<Candle>());
}
return Task.FromResult(_state.State.Candles.ToList());
}
catch (Exception ex)
@@ -168,7 +166,8 @@ public class CandleStoreGrain : Grain, ICandleStoreGrain, IAsyncObserver<Candle>
var endDate = DateTime.UtcNow;
var startDate = CandleHelpers.GetBotPreloadSinceFromTimeframe(timeframe);
var candles = await _candleRepository.GetCandles(exchange, ticker, timeframe, startDate, endDate, MaxCandleCount);
var candles =
await _candleRepository.GetCandles(exchange, ticker, timeframe, startDate, endDate, MaxCandleCount);
if (candles?.Any() == true)
{
@@ -229,7 +228,7 @@ public class CandleStoreGrain : Grain, ICandleStoreGrain, IAsyncObserver<Candle>
_logger.LogDebug("No candles available for grain {GrainKey}", this.GetPrimaryKeyString());
return Task.FromResult<Candle>(null);
}
return Task.FromResult(_state.State.Candles.LastOrDefault());
}
catch (Exception ex)