/// <summary> /// 获取HomeInfo的分页列表信息 ///</summary> /// <param name="input"></param> /// <returns></returns> // [AbpAuthorize(HomeInfoPermissions.Query)] public async Task <PagedResultDto <HomeInfoListDto> > GetPaged(GetHomeInfosInput input) { Expression <Func <HomeInfo, bool> > predicate = p => (p.Id != 1); if (!input.FilterText.IsNullOrWhiteSpace()) { predicate = predicate.And(p => (p.Title.Contains(input.FilterText) || p.Description.Contains(input.FilterText))); } if (input.LastDate.HasValue) { predicate = predicate.And(p => p.CreationTime >= input.LastDate); } var totalCount = _entityRepository.Count(predicate); // .Skip(1) // 第一条记录给 HomeInfo 用, Skip 排序后不可用 // Id = 1 表示第一条数据,不要删除!!! -> .Where(r=>r.Id!=1) var entityList = await _entityRepository.GetAll() .Where(r => r.Id != 1) .WhereIf(!input.FilterText.IsNullOrWhiteSpace(), r => (r.Title.Contains(input.FilterText) || r.Description.Contains(input.FilterText))) .WhereIf(input.LastDate.HasValue, r => r.CreationTime > input.LastDate) .OrderByDescending(t => t.Id) //.OrderBy(input.Sorting).AsNoTracking() .PageBy(input) .ToListAsync(); var entityListDtos = ObjectMapper.Map <List <HomeInfoListDto> >(entityList); //var entityListDtos = entityList.MapTo<List<HomeInfoListDto>>(); return(new PagedResultDto <HomeInfoListDto>(totalCount, entityListDtos)); // 第一条记录给 HomeInfo 用 }
public async Task <PagedResultDto <HomeInfoListDto> > GetPagedNoReadNotice(GetHomeInfosInput input) { long userID = (long)AbpSession.UserId; Expression <Func <HomeInfo, bool> > predicate = p => (p.Id != 1); Expression <Func <AbpUsersEx, bool> > predicate2 = p => (p.Id == userID); if (_userRepository.Count(predicate2).Equals(1)) { input.LastDate = _userRepository.Get(userID).ReadLastNoticeTime; predicate = predicate.And(p => p.CreationTime >= input.LastDate); } var totalCount = _entityRepository.Count(predicate); var entityList = await _entityRepository.GetAll() .Where(r => r.Id != 1) .WhereIf(!input.FilterText.IsNullOrWhiteSpace(), r => (r.Title.Contains(input.FilterText) || r.Description.Contains(input.FilterText))) .WhereIf(input.LastDate.HasValue, r => r.CreationTime > input.LastDate) .OrderByDescending(t => t.Id) //.OrderBy(input.Sorting).AsNoTracking() .PageBy(input) .ToListAsync(); var entityListDtos = ObjectMapper.Map <List <HomeInfoListDto> >(entityList); return(new PagedResultDto <HomeInfoListDto>(totalCount, entityListDtos)); // 第一条记录给 HomeInfo 用 }