Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
 private void DiscardOrder(OrderDiscarded m)
 {
     _state.Status = OrderStatus.Discarded;
 }