public async Task <IEnumerable <Product> > HandleAsync(SearchProductsQuery query, CancellationToken ct)
        {
            var filter = _products;

            if (!string.IsNullOrWhiteSpace(query.FilterQ))
            {
                var filterQ = query.FilterQ.Trim();

                filter = filter.Where(p =>
                                      p.Code.Contains(filterQ) ||
                                      p.Name.Contains(filterQ)
                                      );
            }

            var skip = query.Skip ?? 0;
            var take = query.Take ?? 20;

            return(await filter.OrderBy(p => p.Code).Skip(skip).Take(take).Select(p => new Product
            {
                Id = p.ExternalId,
                Code = p.Code,
                Name = p.Name,
                Price = p.Price
            }).ToListAsync(ct));
        }
Пример #2
0
        public ProductsControllersTests()
        {
            _getProductsQuery    = A.Fake <GetProductsQuery>();
            _searchProductsQuery = A.Fake <SearchProductsQuery>();
            _getProductBundles   = A.Fake <GetProductBundlesQuery>();

            _productController = new ProductsController(_getProductsQuery, _searchProductsQuery, _getProductBundles);
        }
        public async Task <IEnumerable <ProductDto> > Handle(SearchProductsQuery request, CancellationToken cancellationToken)
        {
            var dbProducts = await _productClient.GetProducts(request.Name);

            var scraperProducts = await _scraperClient.GetProductsAsync(request.Name);

            var dbProductsDto = dbProducts.ToProductDto();
            var allProducts   = dbProductsDto.ToList();

            allProducts.AddRange(scraperProducts);
            return(allProducts);
        }
Пример #4
0
        public async Task <IPagedList <ProductResponse> > Handle(SearchProductsQuery request, CancellationToken cancellationToken)
        {
            var productPagedList = await _productRepository.SearchProductsAsync(request.Args);

            return(_mapper.Map <IPagedList <ProductResponse> >(productPagedList));
        }
Пример #5
0
        public async Task <IActionResult> GetByName([FromRoute] SearchProductsQuery query)
        {
            var result = await _mediator.Send(query);

            return(new JsonResult(result));
        }
Пример #6
0
 public ProductsController(GetProductsQuery getProductsQuery, SearchProductsQuery searchProductsQuery, GetProductBundlesQuery getProductBundlesQuery)
 {
     _getProductsQuery       = getProductsQuery;
     _searchProductsQuery    = searchProductsQuery;
     _getProductBundlesQuery = getProductBundlesQuery;
 }
Пример #7
0
        public SearchProductsQueryTests()
        {
            _dapperService = A.Fake <DapperService>();

            _searchProductsQuery = new SearchProductsQuery(A.Fake <IOptions <ApplicationConfiguration> >(), _dapperService);
        }