public void execDetails(int reqId, Contract contract, Execution execution)
        {
            IBOrderStatusWrapper data;

            if (OrderStatusDic.TryGetValue(execution.OrderId, out data))
            {
                data.ExecId = execution.ExecId;
            }
        }
        public void openOrder(int orderId, Contract contract, Order order, OrderState orderState)
        {
            CloseIrrelevantOrders();
            IBOrderStatusWrapper status;

            if (!OrderStatusDic.TryGetValue(orderId, out status))
            {
                var orderData = order.ToOrderData();
                orderData.Contract = contract.ToContract();
                status             = new IBOrderStatusWrapper(new OrderStatusData(orderId.ToString(), orderData)
                {
                    Id = Guid.NewGuid()
                });
                OrderStatusDic[orderId] = status;
            }
            status.Data.LastUpdateTime = DateTime.Now;
            double maintMargin = Convert.ToDouble(orderState.MaintMargin);

            if (maintMargin < LARGE_NUBMER)
            {
                status.Data.MaintMargin = maintMargin;
            }
            Consumer.Enqueue(OrderStatusDic[orderId].Data);
        }