public void Update(OrderRelation orderRelation)
 {
     if (orderRelation != null)
     {
         this.OpenOrderId = orderRelation.OpenOrderId;
         this.OrderId = orderRelation.OrderId;
         this.ClosedLot = orderRelation.ClosedLot;
         this.RelationType = orderRelation.RelationType;
         this.OpenOrderPrice = orderRelation.OpenOrderPrice;
     }
 }
 public void AddOrderRelation(OrderRelation orderRelation)
 {
     bool updated = false;
     foreach (OrderRelation item in this._OrderRelations)
     {
         if (item.Equals(orderRelation))
         {
             item.Update(orderRelation);
             updated = true;
         }
     }
     if (!updated)
     {
         this._OrderRelations.Add(orderRelation);
     }
 }
        private void Process(CommonOrderRelation commonOrderRelation)
        {
            Order order = null;
            if (this._Orders.ContainsKey(commonOrderRelation.OrderId))
            {
                order = this._Orders[commonOrderRelation.OrderId];

                if (commonOrderRelation.RelationType == OrderRelationType.Close)
                {
                    OrderRelation relation = new OrderRelation(commonOrderRelation);

                    Order openOrder = this._Orders.ContainsKey(relation.OpenOrderId) ? this._Orders[relation.OpenOrderId] : null;

                    if (openOrder != null)
                    {
                        string openOrderInfo = string.Format("{0}x{1}x{2}", openOrder.Transaction.SubmitTime.ToString("yyyy-MM-dd"), openOrder.Lot, openOrder.SetPrice);
                        relation.OpenOrderInfo = openOrderInfo;

                        CloseOrder closerOrder = new CloseOrder(order, relation.ClosedLot);
                        order.CloseOrders.Add(closerOrder);
                    }

                    order.Transaction.AddOrderRelation(relation);
                }
            }
        }