private IQueryable <VillageInfo> GetFilteredQuery(GetVillageInfoInput input) { var query = QueryableExtensions.WhereIf( _villageInfoRepository.GetAll() .Include(p => p.RegionInfo) .ThenInclude(p => p.CityInfo) .ThenInclude(p => p.StateInfo), !input.Filter.IsNullOrWhiteSpace(), u => u.RegionInfo.CityInfo.StateInfo.Name.Contains(input.Filter) || u.RegionInfo.CityInfo.Name.Contains(input.Filter) || u.RegionInfo.Name.Contains(input.Filter) || u.Name.Contains(input.Filter) || u.Code.Contains(input.Filter)); return(query); }
public async Task <PagedResultDto <VillageInfoListDto> > GetVillageInfo(GetVillageInfoInput input) { var query = GetFilteredQuery(input); var userCount = await query.CountAsync(); var villageInfos = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var villageInfosListDto = ObjectMapper.Map <List <VillageInfoListDto> >(villageInfos); return(new PagedResultDto <VillageInfoListDto>( userCount, villageInfosListDto )); }