예제 #1
0
        public void Handle(OrderCooked message)
        {
            if (_expectedNextCausationId == message.CausationId)
            {
                if (isFoodCooked)
                {
                    Console.WriteLine("Food was cooked twice: {0}", message.Order.Id);
                }

                isFoodCooked = true;

                var priceOrder = new PriceOrder(message.Order)
                {
                    MessageId     = Guid.NewGuid(),
                    CorrelationId = message.CorrelationId,
                    CausationId   = message.MessageId
                };
                _expectedNextCausationId = priceOrder.MessageId;
                _bus.Publish(priceOrder);
            }
            else
            {
                Console.WriteLine("Received Evil Message: Order Cooked {0}", message.Order.Id);
            }
        }
예제 #2
0
        public void Handle(OrderPlaced order)
        {
            var message = new PriceOrder {
                Order = order.Order
            };

            message.ReplyTo(order);

            _publisher.Publish(message);
        }
        public UkRestaurantDodgyProcessManager(Bus bus, OrderPlaced message)
        {
            _bus                 = bus;
            _correlationId       = message.CorrelationId;
            _orderCookedToken    = _bus.SubscribleToCorrelationId <OrderCooked>(_correlationId, this);
            _orderPricedToken    = _bus.SubscribleToCorrelationId <OrderPriced>(_correlationId, this);
            _orderPaidToken      = _bus.SubscribleToCorrelationId <OrderPaid>(_correlationId, this);
            _orderCompletedToken = _bus.SubscribleToCorrelationId <OrderCompleted>(_correlationId, this);
            _reminderToken       = _bus.SubscribleToCorrelationId <RememberEvent <CookOrder> >(_correlationId, this);

            var priceOrder = new PriceOrder(message.Order)
            {
                MessageId     = Guid.NewGuid(),
                CorrelationId = message.CorrelationId,
                CausationId   = message.MessageId
            };

            _bus.Publish(priceOrder);
        }
 public void Handle(PriceOrder message)
 {
     Console.WriteLine(string.Format("Id: {0} Corr: {1} Cause: {2}", message.EventId, message.CorrelationId, message.CausationId));
 }