public async Task <PageListDto <FabricBasicDto> > ListArchivesAsync(ListFabricQuery query) { if (query.ProducerId.HasValue) { if (query.ShouldSearch()) { return(await _context.Fabrics .Where(x => x.IsArchival && x.ProducerId == query.ProducerId && (query.SearchBy.Any(y => x.Name.ToLower().Contains(y.ToLower())) || query.SearchBy.Any(y => x.ProducerCode.ToLower() .Contains(y.ToLower())))) .OrderBy(x => x.Producer.Name) .ThenBy(x => x.ProducerCode) .ProjectTo <FabricBasicDto>() .ToPagedListAsync(query)); } return(await _context.Fabrics .Where(x => x.IsArchival && x.ProducerId == query.ProducerId) .OrderBy(x => x.Producer.Name) .ThenBy(x => x.ProducerCode) .ProjectTo <FabricBasicDto>() .ToPagedListAsync(query)); } if (query.ShouldSearch()) { return(await _context.Fabrics .Where(x => x.IsArchival && (query.SearchBy.Any(y => x.Name.ToLower().Contains(y.ToLower())) || query.SearchBy.Any(y => x.ProducerCode.ToLower() .Contains(y.ToLower())))) .OrderBy(x => x.Producer.Name) .ThenBy(x => x.ProducerCode) .ProjectTo <FabricBasicDto>() .ToPagedListAsync(query)); } return(await _context.Fabrics .Where(x => x.IsArchival) .OrderBy(x => x.Producer.Name) .ThenBy(x => x.ProducerCode) .ProjectTo <FabricBasicDto>() .ToPagedListAsync(query)); }
public async Task <IActionResult> GetArchives([FromQuery] ListFabricQuery query) { var result = await _fabricService.ListArchivesAsync(query); return(Ok(result.ToResponseDto())); }