public void Handle(CreditScoreRequest message)
        {
            Console.WriteLine("I just handled request {0}", message.CreditCardApplicationId);

            var response = new CreditScoreResponse(message.CreditCardApplicationId);

            response.CreditScore  = 750; //score returned from credit bureau
            response.CreditBureau = message.CreditBureau;
            Bus.Reply(response);
        }
        public void Handle(CreditScoreResponse message)
        {
            LogDebugInfo(message.CreditCardApplicationId, message);

            if (message.CreditScore > 600)
            {
                Bus.Publish <ICreditCardCreatedEvent>(e =>
                {
                    e.CreditCardApplicationId = Data.CreditCardApplicationId;
                    e.CardNumber = "1234-5678-9012-3456"; //simulate process for finding next available number
                });
            }
            else
            {
                Bus.Publish <ICreditCardApplicationDeclinedEvent>(@event =>
                {
                    @event.CreditCardApplicationId = Data.CreditCardApplicationId;
                    @event.Reason = "Insufficient credit score of " + message.CreditScore;
                });
            }

            MarkAsComplete();
        }