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; }