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); }