Exemplo n.º 1
0
        public void OnTrade(ExchangeUpdate exchangeUpdate)
        {
            if (exchangeUpdate == null)
            {
                throw new ArgumentNullException(nameof(exchangeUpdate));
            }
            if (exchangeUpdate.Trades == null)
            {
                throw new ArgumentNullException(nameof(exchangeUpdate.Trades));
            }

            var market     = exchangeUpdate.Market;
            var trades     = exchangeUpdate.Trades;
            var updateDate = exchangeUpdate.UpdateDate;

            lock (managers)
            {
                if (!managers.TryGetValue(market, out var tradesHistoryManager))
                {
                    throw new ArgumentException($"Market {market} is not supported.");
                }
                tradesHistoryManager.OnTrade(trades, updateDate);
            }
        }