public Meetup(MeetupId id, MeetupTitle title, Address location, SeatsNumber numberOfSeats, DateTimeRange timeRange, MeetupState state) { Id = id; Title = title; Location = location; NumberOfSeats = numberOfSeats; TimeRange = timeRange; State = state; EnsureInvariants(State); }
public Meetup( MeetupId id, MeetupTitle title, Address location, SeatsNumber numberOfSeats, DateTimeRange timeRange, Dictionary <MemberId, DateTime> membersGoing, Dictionary <MemberId, DateTime> membersNotGoing, MeetupState state) { Id = id; Title = title; Location = location; NumberOfSeats = numberOfSeats; TimeRange = timeRange; State = state; _membersGoing = membersGoing; _membersNotGoing = membersNotGoing; EnsureInvariants(); }
protected override void When(object @event) { State.EnsureCanRaiseEvent(@event.GetType()); switch (@event) { case Events.MeetupCreated ev: Id = MeetupId.From(ev.Id); Title = MeetupTitle.From(ev.Title); State = MeetupState.Created; break; case Events.MeetupPublished ev: State = MeetupState.Published; break; case Events.MeetupCanceled ev: State = MeetupState.Canceled; break; case Events.MeetupClosed ev: State = MeetupState.Closed; break; case Events.MeetupNumberOfSeatsUpdated ev: NumberOfSeats = SeatsNumber.From(ev.NumberOfSeats); break; case Events.MeetupTimeUpdated ev: TimeRange = DateTimeRange.From(ev.Start, ev.End); break; case Events.MeetupTitleUpdated ev: Title = MeetupTitle.From(ev.Title); break; case Events.MeetupLocationUpdated ev: Location = Address.From(ev.Location); break; } }
public void UpdateNumberOfSeats(SeatsNumber number) { NumberOfSeats = number; EnsureInvariants(); }
public void UpdateNumberOfSeats(SeatsNumber number) => Apply(new Events.MeetupNumberOfSeatsUpdated(Id, number));