public async Task <IEnumerable <Product> > GetSortedProducts(SortOrder sortOrder)
        {
            var products = await _client.GetProducts();

            if (sortOrder != SortOrder.Recommended)
            {
                return(_sortService.SortProducts(products.ToList(), sortOrder));
            }

            var orders = await _client.GetShopperHistory();

            return(_sortService.SortProducts(products.ToList(), sortOrder, orders.ToList()));
        }
Example #2
0
        public async Task SortService_ProductResponse()
        {
            var lstProducts = new List <Product>()
            {
                new Product()
                {
                    Name     = "Test Product A",
                    Price    = 99.99M,
                    Quantity = 0
                },
                new Product()
                {
                    Name     = "Test Product B",
                    Price    = 101.99M,
                    Quantity = 0
                },
                new Product()
                {
                    Name     = "Test Product C",
                    Price    = 10.99M,
                    Quantity = 0
                },
                new Product()
                {
                    Name     = "Test Product D",
                    Price    = 5,
                    Quantity = 0
                },
                new Product()
                {
                    Name     = "Test Product F",
                    Price    = 999999999999,
                    Quantity = 0
                }
            };

            _sortService.SortProducts("High").Returns(lstProducts);
            //act
            var response = await _sortService.SortProducts("High");

            //assert
            Assert.AreEqual(5, response.Count);
        }
Example #3
0
        public IEnumerable <Models.Products> SortProducts(string sortOptions)
        {
            if (sortOptions.Equals(Constants.Recommended, StringComparison.OrdinalIgnoreCase))
            {
                var customerProducts = _resourceService.GetShopperHistory();
                return(_sortService.SortPreferredProducts(customerProducts));
            }
            var products = _resourceService.GetProducts();

            return(_sortService.SortProducts(sortOptions, products));
        }
        public async Task <IActionResult> Get(string sortOption)
        {
            try
            {
                var response = await _sortService.SortProducts(sortOption);

                return(Ok(response));
            }
            catch (System.Exception ex)
            {
                logger.Error(ex, "Unable to retrieve the products");
                return(new BadRequestResult());
            }
        }