コード例 #1
0
        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));
        }
コード例 #2
0
        public async Task <IActionResult> GetArchives([FromQuery] ListFabricQuery query)
        {
            var result = await _fabricService.ListArchivesAsync(query);

            return(Ok(result.ToResponseDto()));
        }