public ActionResult Search(AdministrativeMemberSearchCriteria criteria) { // Search. var memberIds = _administrativeMemberSearchCommand.Search(criteria); var members = _membersQuery.GetMembers(memberIds).ToDictionary(m => m.Id, m => m); return(View(new MemberSearchModel { Criteria = criteria, Members = (from i in memberIds select members[i]).ToList() })); }
IList <Guid> ISearchMembersRepository.Search(AdministrativeMemberSearchCriteria criteria) { using (var dc = CreateContext()) { var query = from m in dc.MemberEntities join u in dc.RegisteredUserEntities on m.id equals u.id join c in dc.CommunityMemberEntities on m.id equals c.id into tCommunityMemberEntities from tc in tCommunityMemberEntities.DefaultIfEmpty() select new { m, u, tc }; if (!string.IsNullOrEmpty(criteria.FirstName)) { query = from m in query where SqlMethods.Like(m.u.firstName, criteria.FirstName + '%') select m; } if (!string.IsNullOrEmpty(criteria.LastName)) { query = from m in query where SqlMethods.Like(m.u.lastName, criteria.LastName + '%') select m; } if (!string.IsNullOrEmpty(criteria.EmailAddress)) { query = from m in query where SqlMethods.Like(m.u.emailAddress, criteria.EmailAddress + '%') select m; } query = from m in query orderby m.u.firstName, m.u.lastName select m; if (criteria.Count != null) { query = query.Take(criteria.Count.Value); } return((from m in query select m.m.id).ToList()); } }
IList <Guid> IAdministrativeMemberSearchCommand.Search(AdministrativeMemberSearchCriteria criteria) { return(_repository.Search(criteria)); }