コード例 #1
0
        public Common.PagedList GetMembers(SearchParameter param)
        {
            var pagedRecord = new Common.PagedList();

            using (var context = _unitOfWork.DbContext)
            {
                Func <Member, object> orderByFunc = null;
                if (param.SortBy == "Lastname")
                {
                    orderByFunc = item => item.Name;
                }
                else if (param.SortBy == "Firstname")
                {
                    orderByFunc = item => item.FirstName;
                }
                else
                {
                    orderByFunc = item => item.LastName;
                }
                //aa == null ? false : aa.Onlin
                pagedRecord.Content = (from m in context.Members
                                       join hhmTemp in context.HouseHoldMembers on m.MemberId equals hhmTemp.MemberId into hhmTempJoin
                                       from hhm in hhmTempJoin.DefaultIfEmpty()
                                       join hhTemp in context.HouseHolds on hhm.HouseHoldId equals hhTemp.HouseHoldId into hhTempJoin
                                       from hh in hhTempJoin.DefaultIfEmpty()
                                       select new Member
                {
                    MemberId = m.MemberId,
                    LastName = m.LastName,
                    FirstName = m.FirstName,
                    MemberOf = m.MemberOf ?? "NONE",
                    Email = m.Email,
                    Phone = m.Phone,
                    DateOfBirth = m.DOB.Value,
                    HouseholdName = hh.Name
                }).Where(x => param.SearchText == null ||
                         ((x.LastName.Contains(param.SearchText))
                         )).OrderBy(orderByFunc)
                                      .Skip((param.PageNumber - 1) * param.PageSize)
                                      .Take(param.PageSize)
                                      .ToList();

                pagedRecord.TotalRecords = (from m in context.Members
                                            join hhmTemp in context.HouseHoldMembers on m.MemberId equals hhmTemp.MemberId into hhmTempJoin
                                            from hhm in hhmTempJoin.DefaultIfEmpty()
                                            join hhTemp in context.HouseHolds on hhm.HouseHoldId equals hhTemp.HouseHoldId into hhTempJoin
                                            from hh in hhTempJoin.DefaultIfEmpty()
                                            select m).Count();

                pagedRecord.CurrentPage = param.PageNumber;
                pagedRecord.PageSize    = param.PageSize;

                return(pagedRecord);
            }
        }
コード例 #2
0
        public Common.PagedList GetMembers(SearchParameter param)
        {
            var pagedRecord = new Common.PagedList();
            using (var context = _unitOfWork.DbContext)
            {
                Func<Member, object> orderByFunc = null;
                if (param.SortBy == "Lastname")
                    orderByFunc = item => item.Name;
                else if (param.SortBy == "Firstname")
                    orderByFunc = item => item.FirstName;
                else
                    orderByFunc = item => item.LastName;
                //aa == null ? false : aa.Onlin
                pagedRecord.Content = (from m in context.Members
                    join hhmTemp in context.HouseHoldMembers on m.MemberId equals hhmTemp.MemberId into hhmTempJoin
                    from hhm in hhmTempJoin.DefaultIfEmpty()
                    join hhTemp in context.HouseHolds on hhm.HouseHoldId equals hhTemp.HouseHoldId into hhTempJoin
                    from hh in hhTempJoin.DefaultIfEmpty()
                    select new Member
                    {
                        MemberId = m.MemberId,
                        LastName = m.LastName,
                        FirstName = m.FirstName,
                        MemberOf = m.MemberOf ?? "NONE",
                        Email = m.Email,
                        Phone = m.Phone,
                        DateOfBirth = m.DOB.Value,
                        HouseholdName = hh.Name
                    }).Where(x => param.SearchText == null ||
                        ((x.LastName.Contains(param.SearchText))
                    )).OrderBy(orderByFunc)
                    .Skip((param.PageNumber - 1) * param.PageSize)
                    .Take(param.PageSize)
                    .ToList();

                pagedRecord.TotalRecords = (from m in context.Members
                    join hhmTemp in context.HouseHoldMembers on m.MemberId equals hhmTemp.MemberId into hhmTempJoin
                    from hhm in hhmTempJoin.DefaultIfEmpty()
                    join hhTemp in context.HouseHolds on hhm.HouseHoldId equals hhTemp.HouseHoldId into hhTempJoin
                    from hh in hhTempJoin.DefaultIfEmpty()
                    select m).Count();

                pagedRecord.CurrentPage = param.PageNumber;
                pagedRecord.PageSize = param.PageSize ;

                return pagedRecord;
            }
        }