示例#1
0
        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));
        }