public List <GroupContactDTO> PotentialVolunteers(int groupId, Models.Crossroads.Events.Event evnt, List <MpGroupParticipant> groupMembers) { var responses = _opportunityService.GetContactsOpportunityResponseByGroupAndEvent(groupId, evnt.EventId).Select(res => { var r = new OpportunityResponseDto() { EventId = res.Event_ID, OpportunityEvent = evnt, ParticipantId = res.Participant_ID, ResponseResultId = res.Response_Result_ID, OpportunityId = -1, ResponseId = -1, Closed = false, ResponseDate = res.Response_Date, ContactId = res.Contact_ID }; return(r); }).ToList(); //var filteredGroupMembers = new List<GroupContactDTO>(); return(groupMembers.Where(gm => { // did this person respond? //var responded = responses.All(r => r.ContactId == gm.ContactId); var responded = false; responses.ForEach(r => { if (r.ContactId == gm.ContactId) { responded = true; } }); if (responded) { return false; } var respondedOnWeekend = RespondedOnWeekend(evnt, gm); return !respondedOnWeekend; }).ToList().Select(m => new GroupContactDTO() { ContactId = m.ContactId, DisplayName = String.Format("{0}, {1}", m.LastName, m.NickName) }).ToList()); }