コード例 #1
0
 private void ReserveTicket(TicketReserved m)
 {
     _state.Tickets.Add(new Ticket
     {
         Id = m.TicketId,
     });
 }
コード例 #2
0
 private void Handle(TicketReserved @event)
 {
     _state.Tickets.Add(new OrderTicketReadModel(@event.TicketId,
                                                 @event.EventId,
                                                 @event.CustomerId,
                                                 @event.PriceOptionId,
                                                 @event.OrderId,
                                                 @event.PriceZoneName,
                                                 @event.PriceOptionName,
                                                 @event.GrossAmount,
                                                 new[]
     {
         @event.SceneSeatId
     }));
 }
コード例 #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;
            }
        }