protected MeetingTestData CreateMeetingTestData(MeetingTestDataOptions options) { var proposalMemberId = options.CreatorId ?? new MemberId(Guid.NewGuid()); var meetingProposal = MeetingGroupProposal.ProposeNew( "name", "description", new MeetingGroupLocation("Warsaw", "PL"), proposalMemberId); meetingProposal.Accept(); var meetingGroup = meetingProposal.CreateMeetingGroup(); meetingGroup.UpdatePaymentInfo(DateTime.Now.AddDays(1)); var meetingTerm = options.MeetingTerm ?? new MeetingTerm(DateTime.UtcNow.AddDays(1), DateTime.UtcNow.AddDays(2)); var rsvpTerm = options.RvspTerm ?? Term.NoTerm; var meeting = meetingGroup.CreateMeeting("title", meetingTerm, "description", new MeetingLocation("Name", "Address", "PostalCode", "City"), options.AttendeesLimit, options.GuestsLimit, rsvpTerm, MoneyValue.Zero, new List <MemberId>(), proposalMemberId); DomainEventsTestHelper.ClearAllDomainEvents(meetingGroup); return(new MeetingTestData(meetingGroup, meeting)); }
protected MeetingTestData CreateMeetingTestData(MeetingTestDataOptions options) { var proposalMemberId = options.CreatorId ?? new MemberId(Guid.NewGuid()); var meetingProposal = MeetingGroupProposal.ProposeNew( "name", "description", MeetingGroupLocation.CreateNew("Warsaw", "PL"), proposalMemberId); meetingProposal.Accept(); var meetingGroup = meetingProposal.CreateMeetingGroup(); meetingGroup.SetExpirationDate(DateTime.Now.AddDays(1)); var meetingTerm = options.MeetingTerm ?? MeetingTerm.CreateNewBetweenDates(DateTime.UtcNow.AddDays(1), DateTime.UtcNow.AddDays(2)); var rsvpTerm = options.RvspTerm ?? Term.NoTerm; var meeting = meetingGroup.CreateMeeting( "title", meetingTerm, "description", MeetingLocation.CreateNew("Name", "Address", "PostalCode", "City"), options.AttendeesLimit, options.GuestsLimit, rsvpTerm, MoneyValue.Undefined, new List <MemberId>(), proposalMemberId); foreach (var attendee in options.Attendees) { meetingGroup.JoinToGroupMember(attendee); meeting.AddAttendee(meetingGroup, attendee, 0); } var meetingCommentingConfiguration = meeting.CreateCommentingConfiguration(); if (options.IsMeetingCommentingEnabled) { meetingCommentingConfiguration.EnableCommenting(proposalMemberId, meetingGroup); } else { meetingCommentingConfiguration.DisableCommenting(proposalMemberId, meetingGroup); } DomainEventsTestHelper.ClearAllDomainEvents(meetingGroup); return(new MeetingTestData(meetingGroup, meeting, meetingCommentingConfiguration)); }