public bool Handle(Completed message)
        {
            var origColour = Console.ForegroundColor;

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("!");
            Console.ForegroundColor = origColour;
            //Unsubscribe
            _dispatcher.Unsubscribe <Cooked>(message.CorrelationId.ToString(), this);
            _dispatcher.Unsubscribe <Priced>(message.CorrelationId.ToString(), this);
            _dispatcher.Unsubscribe <Paid>(message.CorrelationId.ToString(), this);
            _dispatcher.Unsubscribe <Completed>(message.CorrelationId.ToString(), this);
            return(true);
        }
        public bool Handle(OrderTaken message)
        {
            _topicDispatcher.Unsubscribe(message.GetType().FullName, this);

            _topicDispatcher.Subscribe(message.CorrelationId.ToString(), new Printer());

            return(true);
        }
        public bool Handle(Completed message)
        {
            IProcessManager orderFulfillment;

            if (!_processes.TryGetValue(message.CorrelationId, out orderFulfillment))
            {
                _dispatcher.Unsubscribe <IMessage>(message.CorrelationId.ToString(), this);
                _processes.Remove(message.CorrelationId);
            }

            return(true);
        }