public void Handle(SeatCreated @event)
        {
            var dto = GetSeatTypeView(@event.SourceId);

            if (dto != null)
            {
                Trace.TraceWarning(
                    "Ignoring SeatCreated event for seat type with ID {0} as it was already created.",
                    @event.SourceId);
            }
            else
            {
                dto = new SeatTypeView(
                    @event.SourceId,
                    @event.ConferenceId,
                    @event.Name,
                    @event.Description,
                    @event.Price,
                    @event.Quantity);

                this.bus.Send(
                    new AddSeats
                {
                    ConferenceId = @event.ConferenceId,
                    SeatType     = @event.SourceId,
                    Quantity     = @event.Quantity
                });

                seatTypeRepository.Insert(dto);
            }
        }
        public void Handle(OrderPlaced @event)
        {
            var dto = new PricedOrder
            {
                OrderId = @event.SourceId,
                ReservationExpirationDate = @event.ReservationAutoExpiration,
                OrderVersion = @event.Version
            };

            pricedOrderRepository.Insert(dto);
        }
        public void Handle(OrderPlaced @event)
        {
            var dto = new DraftOrder(@event.SourceId, @event.ConferenceId, (int)DraftOrder.States.PendingReservation, @event.Version)
            {
                AccessCode = @event.AccessCode,
            };

            dto.Lines.AddRange(@event.Seats.Select(seat => new DraftOrderItem(seat.SeatType, seat.Quantity)));

            draftOrderRepository.Insert(dto);
        }
        public void Handle(ConferenceCreated @event)
        {
            var dto = GetConferenceView(@event.SourceId);

            if (dto != null)
            {
                Trace.TraceWarning(
                    "Ignoring ConferenceCreated event for conference with ID {0} as it was already created.",
                    @event.SourceId);
            }
            else
            {
                var conference = new ConferenceView(
                    @event.SourceId,
                    @event.Slug,
                    @event.Name,
                    @event.Description,
                    @event.Location,
                    @event.Tagline,
                    @event.TwitterSearch,
                    @event.StartDate);
                conferenceRepository.Insert(conference);
            }
        }