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();
        }
Exemplo n.º 7
0
 public void Update(LimitOrderDto other)
 {
     Symbol          = other.Symbol;
     Quantity        = other.Quantity;
     Price           = other.Price;
     Way             = other.Way;
     ExchangeOrderId = other.ExchangeOrderId;
     ClientId        = other.ClientId;
 }
 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);
 }
Exemplo n.º 15
0
 public DuoLimitOrderDto()
 {
     LimitOrder1 = new LimitOrderDto();
     LimitOrder2 = new LimitOrderDto();
 }