示例#1
0
        public void OnOrderReceived(OrderData order)
        {
            print("In come order : " + order);

            // Check if null will exit.
            if (null == order)
            {
                print("Order = null !");
                return;
            }

            // Init object.
            ConcurrentDictionary <string, OrderData> slaveOrders = null;

            if (null == msgController.GetSlaveOrders())
            {
                // Init on controller.
                msgController.InitSlaveOrders();

                // Get instance of Slave order again.
                slaveOrders = msgController.GetSlaveOrders();
            }

            // Get order ID.
            var orderId = order.OrderId;

            // Check if order ID existed.
            if (slaveOrders.ContainsKey(orderId))
            {
                print("Order " + orderId + " existed.");

                // Checking order status.
                if (order.Status == StatusType.Running)
                {
                    // Replace order data to key.
                    slaveOrders[orderId] = order;
                }
                else
                {
                    // Removing order data.
                    OrderData removeOrder = null;                    // Init temp holder.
                    slaveOrders.TryRemove(orderId, out removeOrder); // Removing order data from order ID.
                    print("Removed order : " + removeOrder.OrderId);
                    removeOrder = null;                              // deassign.
                }
            }
            else
            {
                // Add new order data
                slaveOrders.TryAdd(orderId, order);
                print("Added order : " + orderId);
            }
        }