public void ChangeDescription(CalendarDescription newDescription) { Apply(new Events.CalendarDescriptionChanged { CalendarId = this.Id, NewCalendarDescription = newDescription }); }
protected override void When(object @event) { switch (@event) { case Events.CalendarCreated e: Id = new CalendarId(e.CalendarId); Description = new CalendarDescription(e.CalendarDescription); MaximumBookingTimeInMinutes = new CalendarMaximumBookingTimeInMinutes(e.MaximumBookingTimeInMinutes); break; case Events.CalendarDescriptionChanged e: Description = new CalendarDescription(e.NewCalendarDescription); break; case Events.CalendarMaxBookingTimeChanged e: MaximumBookingTimeInMinutes = new CalendarMaximumBookingTimeInMinutes(e.NewMaximumBookingTimeInMinutes); break; case Events.BookingAdded e: var newBooking = new Booking(Apply); ApplyToEntity(newBooking, e); EnsureNoBookingConflicts(newBooking); Bookings.Add(newBooking); break; case Events.BookingRemoved e: var booking = Bookings.Where(booking => booking.Id == e.BookingId).FirstOrDefault(); if (booking == null) { throw new Exception("Booking doesnot exist"); } Bookings.Remove(booking); break; } }
public Calendar(CalendarId id, CalendarDescription description, CalendarMaximumBookingTimeInMinutes maxBookingTimeInMinutes) { Bookings = new List <Booking>(); Apply(new Events.CalendarCreated { CalendarId = id, CalendarDescription = description, MaximumBookingTimeInMinutes = maxBookingTimeInMinutes }); }