Пример #1
0
        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()
            }));
        }
Пример #2
0
        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));
 }