コード例 #1
0
        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());
        }