Ejemplo n.º 1
0
 public OrderBook UpdateOrder(Order mmsOrder)
 {
     if (mmsOrder.MarketSide == MarketSide.Ask)
     {
         if (Asks.All(askOrder => askOrder.MMSId != mmsOrder.MMSId))
         {
             throw new ApplicationException("Ask Order changed received, but no existing order found: {0}".FormatAs(mmsOrder));
         }
         // remove
         var newAsks = Asks.Where(o => o.MMSId != mmsOrder.MMSId).ToList();
         // add
         newAsks.Add(mmsOrder);
         return(new OrderBook(Bids, newAsks, Exchange, Pair, Time));
     }
     else
     {
         if (Bids.All(bidOrder => bidOrder.MMSId != mmsOrder.MMSId))
         {
             throw new ApplicationException("Bid Order changed received, but no existing order found: {0}".FormatAs(mmsOrder));
         }
         // remove
         var newBids = Bids.Where(o => o.MMSId != mmsOrder.MMSId).ToList();
         // add
         newBids.Add(mmsOrder);
         return(new OrderBook(newBids, Asks, Exchange, Pair, Time));
     }
 }