public static OrderBookLib.Exchange CreateExchange(IHubContext <TradesHub> hub, IHubContext <OrderBookHub> orderBookHub) { IMessageSerializer <OrderPlaced> serializer = new JsonMessageSerializer <OrderPlaced>(); var orderStore = new EventStore <OrderPlaced>("OrderPlaced.txt", serializer); var exchange = new OrderBookLib.Exchange(orderStore); exchange.OnNewTrades += (IReadOnlyCollection <OrderBookLib.Trade> trades) => HandleNewTrades(hub, trades); exchange.OnOrderBookUpdated += (IReadOnlyCollection <OrderBookLib.OrderBookLine> orderBookAskLines, IReadOnlyCollection <OrderBookLib.OrderBookLine> orderBookBidLines) => HandleOrderBookUpdated(orderBookHub, orderBookAskLines, orderBookBidLines); var cts = new CancellationTokenSource(); runTask = exchange.RunAsync(cts.Token); return(exchange); }
public OrdersController(IHubContext <OrderBookHub> orderBookHubContext, OrderBookLib.Exchange exchange) { _orderBookHubContext = orderBookHubContext; _exchange = exchange; }