private void Handle(OrderDiscarded @event) { var oldOrder = _state.Orders.Single(x => x.Id == @event.OrderId); var order = new OrderReadModel(@event.OrderId, OrderStateReadModel.Canceled); _state.Orders.Replace(oldOrder, order); }
private void Handle(OrderDiscarded @event) { var oldOrder = _state.Orders.Single(x => x.Id == @event.OrderId); var order = new ClientOrderReadModel(@event.OrderId, @event.CustomerId, oldOrder.CreateDateTime, DateTime.Now, oldOrder.ExpirationTimeout, OrderStateReadModel.Canceled); _state.Orders.Replace(oldOrder, order); }
protected override void OnCommand(object message) { switch (message) { case SetDelivery m: { var deliverySet = new DeliveryMethodSet(m.OrderId, m.DeliveryTypeId); Persist(deliverySet, @event => { SetDelivery(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case SetPayment m: { var paymentSet = new PaymentMethodSet(m.OrderId, m.PaymentTypeId); Persist(paymentSet, @event => { SetPayment(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case DiscardOrder m: { var orderDiscarded = new OrderDiscarded(m.OrderId, _state.CustomerId); Persist(orderDiscarded, @event => { DiscardOrder(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case CommitOrder m: { var orderCommited = new OrderCommited(m.OrderId, _state.CustomerId); Persist(orderCommited, @event => { CommitOrder(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case CompleteOrder m: { var orderCompleted = new OrderCompleted(m.OrderId, _state.CustomerId); Persist(orderCompleted, @event => { CompleteOrder(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case ReserveTicket m: { var ticketReserved = new TicketReserved( m.OrderId, m.CustomerId, m.TicketId, m.EventId, m.PriceOptionId, m.SceneSeatId, m.PriceZoneName, m.PriceOptionName, m.GrossAmount); Persist(ticketReserved, @event => { ReserveTicket(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case RemoveTicket m: { var ticketRemoved = new TicketRemoved(m.OrderId, m.CustomerId, m.EventId, m.TicketId); Persist(ticketRemoved, @event => { RemoveTicket(@event); SaveSnapshotIfNeeded(); Context.PublishEvent(@event); }); } break; case Terminated m: { } break; default: Unhandled(message); break; } }
private void DiscardOrder(OrderDiscarded m) { _state.Status = OrderStatus.Discarded; }