示例#1
0
        /// <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 用
        }
示例#2
0
        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 用
        }