public void CreateMeetingGroupTest() { // Arrange Guid creatorId = Guid.NewGuid(); Meetings.Domain.MeetingGroups.MeetingGroup meetingGroup = new Meetings.Domain.MeetingGroups.MeetingGroup("testName", "description", "Warsaw", "PL", creatorId); var allDomainEvents = DomainEventsTestHelper.GetAllDomainEvents(meetingGroup); //Assert Assert.That(allDomainEvents, Is.Not.Null); Assert.That(allDomainEvents[0], Is.TypeOf <MeetingGroupCreatedDomainEvent>()); var meetingGroupCreated = allDomainEvents[0] as MeetingGroupCreatedDomainEvent; Assert.That(meetingGroupCreated.MeetingGroupId, Is.EqualTo(meetingGroup.Id)); Assert.That(allDomainEvents[1], Is.TypeOf <MeetingGroupMemberJoinedDomainEvent>()); var meetingGroupMemberJoned = allDomainEvents[1] as MeetingGroupMemberJoinedDomainEvent; Assert.That(meetingGroupMemberJoned.MemberId, Is.EqualTo(creatorId)); Assert.That(meetingGroupMemberJoned.Role, Is.EqualTo(MeetingGroupMemberRole.Organizer())); }
public async Task Handle(MemberSubscriptionExpirationDateChangedNotification notification, CancellationToken cancellationToken) { var sql = "SELECT " + $"[MeetingGroupMember].MeetingGroupId AS [{nameof(MeetingGroupMemberResponse.MeetingGroupId)}], " + $"[MeetingGroupMember].RoleCode AS [{nameof(MeetingGroupMemberResponse.RoleCode)}] " + "FROM [meetings].[v_MeetingGroupMembers] AS [MeetingGroupMember] " + "WHERE [MeetingGroupMember].MemberId = @MemberId"; var connection = _sqlConnectionFactory.GetOpenConnection(); var meetingGroupMembers = await connection.QueryAsync <MeetingGroupMemberResponse>( sql, new { MemberId = notification.DomainEvent.MemberId.Value }); var meetingGroupList = meetingGroupMembers.AsList(); List <MeetingGroupMemberData> meetingGroups = meetingGroupList .Select(x => new MeetingGroupMemberData( new MeetingGroupId(x.MeetingGroupId), MeetingGroupMemberRole.Of(x.RoleCode))) .ToList(); var meetingGroupsCoveredByMemberSubscription = MeetingGroupExpirationDatePolicy.GetMeetingGroupsCoveredByMemberSubscription(meetingGroups); foreach (var meetingGroup in meetingGroupsCoveredByMemberSubscription) { await _commandsScheduler.EnqueueAsync(new SetMeetingGroupExpirationDateCommand( Guid.NewGuid(), meetingGroup.Value, notification.DomainEvent.ExpirationDate)); } }
public NewMeetingGroupMemberJoinedDomainEvent(MeetingGroupId meetingGroupId, MemberId memberId, MeetingGroupMemberRole role) { this.MeetingGroupId = meetingGroupId; this.MemberId = memberId; this.Role = role; }
public MeetingGroupMemberData(MeetingGroupId meetingGroupId, MeetingGroupMemberRole role) { MeetingGroupId = meetingGroupId; Role = role; }