Example #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));
    }