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); }
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); }