コード例 #1
0
    public async Task <PageModelDto <CfgDto> > GetPagedAsync(CfgSearchPagedDto search)
    {
        var whereExpression = ExpressionCreator
                              .New <SysCfg>()
                              .AndIf(search.Name.IsNotNullOrWhiteSpace(), x => EF.Functions.Like(x.Name, $"{search.Name}%"))
                              .AndIf(search.Value.IsNotNullOrWhiteSpace(), x => EF.Functions.Like(x.Value, $"{search.Value}%"));


        var total = await _cfgRepository.CountAsync(whereExpression);

        if (total == 0)
        {
            return(new PageModelDto <CfgDto>(search));
        }

        var entities = await _cfgRepository
                       .Where(whereExpression)
                       .OrderByDescending(x => x.ModifyTime)
                       .Skip(search.SkipRows())
                       .Take(search.PageSize)
                       .ToListAsync();

        var cfgDtos = Mapper.Map <List <CfgDto> >(entities);

        return(new PageModelDto <CfgDto>(search, cfgDtos, total));
    }
コード例 #2
0
        public async Task <PageModelDto <CfgDto> > GetPagedAsync(CfgSearchPagedDto search)
        {
            Expression <Func <CfgDto, bool> > whereCondition = x => true;

            if (search.Name.IsNotNullOrWhiteSpace())
            {
                whereCondition = whereCondition.And(x => x.Name.Contains(search.Name));
            }
            if (search.Value.IsNotNullOrWhiteSpace())
            {
                whereCondition = whereCondition.And(x => x.Value.Contains(search.Value));
            }

            var allCfgs = await _cacheService.GetAllCfgsFromCacheAsync();

            var pagedCfgs = allCfgs.Where(whereCondition.Compile())
                            .OrderByDescending(x => x.CreateTime)
                            .Skip((search.PageIndex - 1) * search.PageSize)
                            .Take(search.PageSize)
                            .ToArray();

            var result = new PageModelDto <CfgDto>()
            {
                Data = pagedCfgs
                ,
                TotalCount = allCfgs.Count
                ,
                PageIndex = search.PageIndex
                ,
                PageSize = search.PageSize
            };

            return(result);
        }
コード例 #3
0
 public async Task <ActionResult <PageModelDto <CfgDto> > > GetPagedAsync([FromQuery] CfgSearchPagedDto search)
 {
     return(Result(await _cfgAppService.GetPagedAsync(search)));
 }