Esempio n. 1
0
        public OrderBooksService(
            IB2С2RestClient b2C2RestClient,
            IOrderBookPublisher orderBookPublisher,
            ITickPricePublisher tickPricePublisher,
            OrderBooksServiceSettings settings,
            B2C2ClientSettings webSocketC2ClientSettings,
            ILogFactory logFactory)
        {
            _withWithoutSuffixMapping = new ConcurrentDictionary <string, string>();
            _withoutWithSuffixMapping = new ConcurrentDictionary <string, string>();
            _orderBooksCache          = new ConcurrentDictionary <string, OrderBook>();
            _subscriptions            = new ConcurrentDictionary <string, string>();

            _instrumentsLevels = settings.InstrumentsLevels == null || !settings.InstrumentsLevels.Any()
                ? throw new ArgumentOutOfRangeException(nameof(_instrumentsLevels)) : settings.InstrumentsLevels;

            _b2C2RestClient            = b2C2RestClient ?? throw new NullReferenceException(nameof(b2C2RestClient));
            _webSocketC2ClientSettings = webSocketC2ClientSettings ?? throw new NullReferenceException(nameof(webSocketC2ClientSettings));

            _orderBookPublisher = orderBookPublisher ?? throw new NullReferenceException(nameof(orderBookPublisher));
            _tickPricePublisher = tickPricePublisher ?? throw new NullReferenceException(nameof(tickPricePublisher));

            _logFactory = logFactory;
            _log        = logFactory.CreateLog(this);

            _reconnectIfNeededInterval = settings.ReconnectIfNeededInterval;
            _reconnectIfNeededTrigger  = new TimerTrigger(nameof(OrderBooksService), settings.ReconnectIfNeededInterval, logFactory, ReconnectIfNeeded);
            _forceReconnectTrigger     = new TimerTrigger(nameof(OrderBooksService), settings.ForceReconnectInterval, logFactory, ForceReconnect);

            _settings = settings;
        }
 public FakeExchange(
     IBalancesService balancesService,
     IClientOrdersService clientOrdersService,
     IOrderBookPublisher orderBookPublisher,
     ITickPricePublisher tickPricePublisher,
     bool matchExternalOrderBooks,
     string exchangeName)
 {
     _balancesService         = balancesService;
     _clientOrdersService     = clientOrdersService;
     _orderBookPublisher      = orderBookPublisher;
     _tickPricePublisher      = tickPricePublisher;
     _matchExternalOrderBooks = matchExternalOrderBooks;
     _exchangeName            = exchangeName;
 }