public void InvokeProcessMessage(MessageListenerEventArgs mle) { if (MessageHasPairedValues(mle)) { var auctionEvent = AuctionEvent.From(mle.Message.Body); switch (auctionEvent.Type) { case "CLOSE": _auctionEventListener.AuctionClosed(); break; case "PRICE": _auctionEventListener.CurrentPrice(auctionEvent.CurrentPrice, auctionEvent.Increment, auctionEvent.IsFrom(_sniperId)); break; default: string messageDetail = $"Message type: {auctionEvent.Type} not handled, from message {mle.Message.Body}"; throw new Exception(messageDetail); } } else { if (mle.Message.Body.Contains(SharedConstants.STATUS_JOINING)) { _auctionEventListener.JoiningAuction(); } } }
// creation method public static AuctionEvent From(string messageBody) { var auctionEvent = new AuctionEvent(); foreach (string field in GenerateFieldPairs(messageBody)) { auctionEvent.AddField(field); } return auctionEvent; }
// creation method public static AuctionEvent From(string messageBody) { var auctionEvent = new AuctionEvent(); foreach (string field in GenerateFieldPairs(messageBody)) { auctionEvent.AddField(field); } return(auctionEvent); }