public void Consume(PaymentDueMessage message) { string prompt = string.Format("Payment due: ${0} Would you like to add a tip?", message.Amount); DialogResult result = MessageBox.Show(prompt, "Payment Due", MessageBoxButtons.YesNoCancel); decimal payment = message.Amount; if (result == DialogResult.Yes) { payment += payment * 0.2m; } if (result != DialogResult.Cancel) { var submitPaymentMessage = new SubmitPaymentMessage { CorrelationId = message.CorrelationId, PaymentType = PaymentType.CreditCard, Amount = payment, }; Bus.Publish(submitPaymentMessage); } }
void ProcessPayment(SubmitPaymentMessage message) { if (message.Amount > _amount) { Console.WriteLine("Thanks for the tip!"); } else if (message.Amount < _amount) { Console.WriteLine("What are you, some kind of charity case?"); } var paymentType = message.PaymentType; Console.WriteLine("Received a payment of {0} for {1} ({2})", paymentType, _item, _size); if (paymentType == PaymentType.CreditCard) { Console.Write("Authorizing Card..."); Thread.Sleep(4000); Console.WriteLine("done!"); } var completeMessage = new PaymentCompleteMessage { CorrelationId = message.CorrelationId, }; Bus.Publish(completeMessage); }