public GroupDTO getGroupDetails(int groupId, int contactId, Participant participant, string authUserToken) { int participantId = participant.ParticipantId; Group g = _mpGroupService.getGroupDetails(groupId); var signupRelations = _mpGroupService.GetGroupSignupRelations(g.GroupType); var currRelationships = _contactRelationshipService.GetMyCurrentRelationships(contactId, authUserToken); var events = _mpGroupService.getAllEventsForGroup(groupId); ContactRelationship[] familyToReturn = null; if (currRelationships != null) { familyToReturn = currRelationships.Where( c => signupRelations.Select(s => s.RelationshipId).Contains(c.Relationship_Id)).ToArray(); } var detail = new GroupDTO(); { detail.GroupName = g.Name; detail.GroupId = g.GroupId; detail.GroupFullInd = g.Full; detail.WaitListInd = g.WaitList; detail.ChildCareAvailable = g.ChildCareAvailable; detail.WaitListGroupId = g.WaitListGroupId; detail.OnlineRsvpMinimumAge = g.MinimumAge; if (events != null) { detail.Events = events.Select(Mapper.Map<MinistryPlatform.Models.Event, crds_angular.Models.Crossroads.Events.Event>).ToList(); } //the first instance of family must always be the logged in user var fam = new SignUpFamilyMembers { EmailAddress = participant.EmailAddress, PreferredName = participant.PreferredName, UserInGroup = _mpGroupService.checkIfUserInGroup(participantId, g.Participants), ParticpantId = participantId, ChildCareNeeded = false }; detail.SignUpFamilyMembers = new List<SignUpFamilyMembers> {fam}; if (familyToReturn != null) { foreach (var f in familyToReturn) { var fm = new SignUpFamilyMembers { EmailAddress = f.Email_Address, PreferredName = f.Preferred_Name, UserInGroup = _mpGroupService.checkIfUserInGroup(f.Participant_Id, g.Participants), ParticpantId = f.Participant_Id, }; detail.SignUpFamilyMembers.Add(fm); } } } return (detail); }
public void testGetGroupDetails() { int groupId = 333; int contactId = 777; Group g = new Group(); g.GroupId = 333; g.GroupType = 8; g.GroupRole = "Member"; g.Name = "Test Me"; g.GroupId = 123456; g.TargetSize = 5; g.WaitList = true; g.WaitListGroupId = 888; Participant participant = new Participant(); participant.ParticipantId = 90210; participantServiceMock.Setup( mocked => mocked.GetParticipantRecord(fixture.Request.Headers.Authorization.ToString())) .Returns(participant); authenticationServiceMock.Setup(mocked => mocked.GetContactId(fixture.Request.Headers.Authorization.ToString())).Returns(contactId); var relationRecord = new GroupSignupRelationships { RelationshipId = 1, RelationshipMinAge = 00, RelationshipMaxAge = 100 }; var groupDto = new GroupDTO { }; groupServiceMock.Setup(mocked => mocked.getGroupDetails(groupId, contactId, participant, fixture.Request.Headers.Authorization.ToString())).Returns(groupDto); IHttpActionResult result = fixture.Get(groupId); Assert.IsNotNull(result); Assert.IsInstanceOf(typeof(OkNegotiatedContentResult<GroupDTO>), result); groupServiceMock.VerifyAll(); var groupDtoResponse = ((OkNegotiatedContentResult<GroupDTO>)result).Content; Assert.NotNull(result); Assert.AreSame(groupDto, groupDtoResponse); }