public void ClientShouldRaiseLimitOrderAddedEvent() { var addedLimitOrders = new List<LimitOrderDto>(); client.LimitOrderAccepted += (sender, order) => addedLimitOrders.Add(order); var newLimitOrder = new LimitOrderDto { ClientId = 88, Price = 10, ExchangeOrderId = 123, Quantity = 90, Symbol = "TSLA", Way = WayEnum.Buy }; messagePublisher.Publish(88, new ServerToClientMessage { LimitOrder = newLimitOrder, MessageType = ServerToClientMessageTypeEnum.LimitOrderAccepted, ReceiverClientId = 88 }); Assert.That(() => addedLimitOrders.Count, Is.EqualTo(1).After(500, 100)); Assert.AreEqual(newLimitOrder.ClientId, addedLimitOrders[0].ClientId); Assert.AreEqual(newLimitOrder.Price, addedLimitOrders[0].Price); Assert.AreEqual(newLimitOrder.ExchangeOrderId, addedLimitOrders[0].ExchangeOrderId); Assert.AreEqual(newLimitOrder.Quantity, addedLimitOrders[0].Quantity); Assert.AreEqual(newLimitOrder.Symbol, addedLimitOrders[0].Symbol); Assert.AreEqual(newLimitOrder.Way, addedLimitOrders[0].Way); }
void client_LimitOrderAccepted(object sender, LimitOrderDto e) { UiDispatcher.Dispatcher.Invoke(() => { LimitOrders.Add(new LimitOrderViewModel(e, client)); }); }
public ClientToServerMessage() { LimitOrder = new LimitOrderDto(); MarketOrder = new MarketOrderDto(); StopLimitOrder = new StopLimitOrderDto(); DuoLimitOrder = new DuoLimitOrderDto(); Reset(); }
public EditLimitOrderViewModel(LimitOrderDto limitOrder, IClient client) { this.limitOrder = limitOrder; this.client = client; SetupCommandsAndBehaviour(); SetFields(); }
public void Update(LimitOrderDto other) { Symbol = other.Symbol; Quantity = other.Quantity; Price = other.Price; Way = other.Way; ExchangeOrderId = other.ExchangeOrderId; ClientId = other.ClientId; }
public LimitOrderViewModel(LimitOrderDto limitOrder, IClient client) { this.limitOrder = limitOrder; this.client = client; SetFields(limitOrder); this.client.LimitOrderChanged += client_LimitOrderChanged; SetupCommandsAndBehaviour(); }
public ServerToClientMessage() { LimitOrder = new LimitOrderDto(); LimitOrderList = new List<LimitOrderDto>(); Execution = new ExecutionDto(); Level1 = new MarketBestBidAskDto(); StopLimitOrder = new StopLimitOrderDto(); StopLimitOrderList = new List<StopLimitOrderDto>(); Reset(); }
void client_LimitOrderDeleted(object sender, LimitOrderDto e) { UiDispatcher.Dispatcher.Invoke(() => { var order = LimitOrders.FirstOrDefault(a => a.OrderId == e.ExchangeOrderId); if (order == null) return; LimitOrders.Remove(order); order.Dispose(); }); }
public void ClientShouldRaiseLimitOrderModifiedEvent() { var modifiedLimitOrders = new List<LimitOrderDto>(); client.LimitOrderChanged += (sender, order) => modifiedLimitOrders.Add(order); var newLimitOrder = new LimitOrderDto { ClientId = 88, Price = 10, ExchangeOrderId = 123, Quantity = 90, Symbol = "TSLA", Way = WayEnum.Buy }; messagePublisher.Publish(88, new ServerToClientMessage { LimitOrder = newLimitOrder, MessageType = ServerToClientMessageTypeEnum.LimitOrderChanged, ReceiverClientId = 88 }); Assert.That(() => modifiedLimitOrders.Count, Is.EqualTo(1).After(500, 100)); }
public DuoLimitOrderDto() { LimitOrder1 = new LimitOrderDto(); LimitOrder2 = new LimitOrderDto(); }
private void SetFields(LimitOrderDto limitOrder) { Symbol = limitOrder.Symbol; Quantity = limitOrder.Quantity; Price = limitOrder.Price; Way = limitOrder.Way; OrderType = "Limit order"; OrderId = limitOrder.ExchangeOrderId; }
void client_LimitOrderChanged(object sender, LimitOrderDto e) { if (e.ExchangeOrderId != limitOrder.ExchangeOrderId) return; SetFields(e); }
public ILimitOrder NewLimitOrder(LimitOrderDto dtoLimitOrder) { return NewLimitOrder(dtoLimitOrder.Symbol, dtoLimitOrder.ClientId, dtoLimitOrder.Price, dtoLimitOrder.Quantity, dtoLimitOrder.Way); }