66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using Managing.Application.Workers;
|
|
using Managing.Application.Workers.Abstractions;
|
|
using static Managing.Common.Enums;
|
|
|
|
namespace Managing.Api.Workers.Workers;
|
|
|
|
public abstract class PricesBaseWorker<T> : BaseWorker<T> where T : class
|
|
{
|
|
private readonly IPricesService _pricesService;
|
|
private readonly IStatisticService _statisticService;
|
|
private readonly Timeframe _timeframe;
|
|
|
|
public PricesBaseWorker(
|
|
ILogger<T> logger,
|
|
IPricesService pricesService,
|
|
IWorkerService workerService,
|
|
IStatisticService statisticService,
|
|
TimeSpan delay,
|
|
WorkerType workerType,
|
|
Timeframe timeframe) : base(
|
|
workerType,
|
|
logger,
|
|
delay,
|
|
workerService
|
|
)
|
|
{
|
|
_pricesService = pricesService;
|
|
_statisticService = statisticService;
|
|
_timeframe = timeframe;
|
|
}
|
|
|
|
private List<Ticker> _eligibleTickers = new List<Ticker>
|
|
{
|
|
Ticker.BTC,
|
|
Ticker.ETH,
|
|
Ticker.BNB,
|
|
Ticker.DOGE,
|
|
Ticker.ADA,
|
|
Ticker.SOL,
|
|
Ticker.XRP,
|
|
Ticker.LINK,
|
|
Ticker.RENDER,
|
|
Ticker.SUI,
|
|
Ticker.GMX,
|
|
Ticker.ARB,
|
|
Ticker.PEPE,
|
|
Ticker.PENDLE,
|
|
Ticker.AAVE,
|
|
Ticker.HYPE
|
|
};
|
|
|
|
protected override async Task Run(CancellationToken cancellationToken)
|
|
{
|
|
var tickers = await _statisticService.GetTickers();
|
|
|
|
var filteredTickers = tickers
|
|
.Where(t => _eligibleTickers.Contains(t))
|
|
.ToList();
|
|
|
|
// Filter with the eligible tickers
|
|
foreach (var ticker in filteredTickers)
|
|
{
|
|
await _pricesService.UpdatePrice(TradingExchanges.Evm, ticker, _timeframe);
|
|
}
|
|
}
|
|
} |