public void BookingUpdated(BookingUpdatedEvent @event)
        {
            _bookingRepository.Save(@event.Source);

            var bookingUpdated = new BookingUpdated
            {
                Id            = @event.Source.Id.Value,
                Start         = @event.Source.Start,
                End           = @event.Source.End,
                BookingTypeId = @event.Source.BookingType.Id.Value
            };

            _bus.Publish(bookingUpdated);
        }
Ejemplo n.º 2
0
        public async Task <bool> UpdateBooking(BookingUpdateInput input)
        {
            var currentVersion = await _eventStore.GetCurrentVersion(input.AggregateId);

            if (currentVersion == EventConstants.NOT_VALID_VERSION)
            {
                return(false);
            }

            // TODO check if booking was canceled or done

            var BookingUpdated = new BookingUpdated
            {
                AggregateId = input.AggregateId,
                DateAdded   = DateTime.Now,
                Version     = currentVersion++,
                Data        = await BuildCreateBookingEventData()
            };
            await _eventStore.Push(BookingUpdated);

            return(true);
        }