Beispiel #1
0
 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);
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
 public void UpdateNumberOfSeats(SeatsNumber number)
 {
     NumberOfSeats = number;
     EnsureInvariants();
 }
Beispiel #5
0
 public void UpdateNumberOfSeats(SeatsNumber number) =>
 Apply(new Events.MeetupNumberOfSeatsUpdated(Id, number));