예제 #1
0
        public override void Handle(Bid bid)
        {
            Log.Verbose("Processing {@bid}...", bid);

            var ask = FindSeller(bid);

            if (ask == null || bid.TraderId == ask.TraderId)
            {
                Log.Debug("No seller for {symbol} @ {price} - bid submitted.", bid.Symbol, bid.Price);
                SubmitOffer(bid);
            }
            else
            {
                Log.Debug("Found seller for {symbol} @ {price} - executing trade", ask.Symbol, ask.Price);
                _tradeHandler.Handle(ask, bid);
            }
        }
        public override void Handle(Ask ask)
        {
            Log.Verbose("Processing {@ask}...", ask);

            var bid = FindBuyer(ask);

            if (bid == null || bid.TraderId == ask.TraderId)
            {
                Log.Debug("No buyer for {symbol} @ {price} - ask submitted.", ask.Symbol, ask.Price);
                SubmitOffer(ask);
            }
            else
            {
                Log.Debug("Found buyer for {symbol} @ {price} - executing trade.", ask.Symbol, ask.Price);
                _tradeHandler.Handle(ask, bid);
            }
        }