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); } }
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)); }