public IndexCalculator(string indexName, TimeSpan indexCalculationInterval, ISettingsService settingsService, IIndexStateRepository indexStateRepository, IIndexHistoryRepository indexHistoryRepository, ITickPricesService tickPricesService, ICoinMarketCapService coinMarketCapService, ITickPricePublisher tickPricePublisher, IWarningRepository warningRepository, IFirstStateAfterResetTimeRepository firstStateAfterResetTimeRepository, IIndexHandler indexHandler, ILogFactory logFactory) { _lastRebuild = DateTime.UtcNow.Date; _allMarketCaps = new List <AssetMarketCap>(); _topAssets = new List <string>(); _lastTopAssetMarketCaps = new ConcurrentDictionary <string, decimal>(); _indexName = indexName; _trigger = new TimerTrigger(nameof(IndexCalculator), indexCalculationInterval, logFactory, TimerHandlerAsync); _settingsService = settingsService; _indexStateRepository = indexStateRepository; _indexHistoryRepository = indexHistoryRepository; _tickPricesService = tickPricesService; _coinMarketCapService = coinMarketCapService; _tickPricePublisher = tickPricePublisher; _warningRepository = warningRepository; _firstStateAfterResetTimeRepository = firstStateAfterResetTimeRepository; _indexHandler = indexHandler; _log = logFactory.CreateLog(this); }
private void InitializeTickPricesService() { var tickPricesService = new Mock <ITickPricesService>(); tickPricesService.Setup(o => o.GetAssetPrices(It.IsAny <IReadOnlyCollection <string> >())) .Returns((ICollection <string> sources) => { IDictionary <string, IReadOnlyCollection <AssetPrice> > result = new Dictionary <string, IReadOnlyCollection <AssetPrice> >(); var prices = GetPrices(_step); foreach (var price in prices) { result.Add(price.Asset, new List <AssetPrice> { new AssetPrice { Asset = price.Asset, CrossAsset = price.CrossAsset, Source = price.Source, Price = price.Price } }); } return(result); }); tickPricesService.Setup(o => o.GetTickPrices(It.IsAny <IReadOnlyCollection <string> >())) .Returns((ICollection <string> sources) => { IDictionary <string, IReadOnlyCollection <TickPrice> > result = new Dictionary <string, IReadOnlyCollection <TickPrice> >(); var prices = GetPrices(_step); foreach (var price in prices) { result.Add(price.Asset, new List <TickPrice> { new TickPrice( price.Source, price.Asset + price.CrossAsset, price.Price, price.Price, DateTime.UtcNow ) }); } return(result); }); _tickPricesService = tickPricesService.Object; }
public TickPricesController(ITickPricesService tickPricesService, IIndexCalculator indexCalculator, ISettingsService settingsService) { _tickPricesService = tickPricesService; _indexCalculator = indexCalculator; _settingsService = settingsService; }
public AssetsInfoController(ISettingsService settingsService, IIndexCalculator indexCalculator, ITickPricesService tickPricesService) { _settingsService = settingsService; _indexCalculator = indexCalculator; _tickPricesService = tickPricesService; }