예제 #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
 public PublicController(IIndexHistoryRepository indexHistoryRepository, IIndexStateRepository indexStateRepository,
                         IIndexCalculator indexCalculator, IStatisticsService statisticsService)
 {
     _indexHistoryRepository = indexHistoryRepository;
     _indexStateRepository   = indexStateRepository;
     _indexCalculator        = indexCalculator;
     _statisticsService      = statisticsService;
 }
예제 #3
0
 public SettingsController(
     ISettingsService settingsService,
     IIndexStateRepository indexStateRepository,
     IIndexCalculator indexCalculator)
 {
     _settingsService      = settingsService;
     _indexStateRepository = indexStateRepository;
     _indexCalculator      = indexCalculator;
 }
예제 #4
0
        private void InitializeIndexStateRepository()
        {
            var indexStateRepository = new Mock <IIndexStateRepository>();

            indexStateRepository.Setup(o => o.GetAsync())
            .Returns(() => Task.FromResult(_lastIndexState));

            indexStateRepository.Setup(o => o.SetAsync(It.IsAny <IndexState>()))
            .Returns((IndexState newState) =>
            {
                _lastIndexState = newState;
                return(Task.CompletedTask);
            });

            _indexStateRepository = indexStateRepository.Object;
        }