コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
 public TickPricesController(ITickPricesService tickPricesService, IIndexCalculator indexCalculator, ISettingsService settingsService)
 {
     _tickPricesService = tickPricesService;
     _indexCalculator   = indexCalculator;
     _settingsService   = settingsService;
 }
コード例 #4
0
 public AssetsInfoController(ISettingsService settingsService, IIndexCalculator indexCalculator, ITickPricesService tickPricesService)
 {
     _settingsService   = settingsService;
     _indexCalculator   = indexCalculator;
     _tickPricesService = tickPricesService;
 }