public async Task <IActionResult> Index(decimal?minAmount, decimal?maxAmount) { if (minAmount == null || maxAmount == null) { var products = await _db.Products.Include(m => m.ProductTypes) .Include(m => m.SpecialTags) .ToListAsync(); return(View(products)); } //var filterdProducts = await _db.Products.Where(m => m.Price >= minAmount && m.Price <= maxAmount) // .Include(m=>m.ProductTypes) // .Include(m=>m.SpecialTags) // .ToListAsync(); var productsList = await _db.Products.Include(m => m.ProductTypes) .Include(m => m.SpecialTags) .ToListAsync(); ProductServices _productServices = new ProductServices(); var filterdProducts = _productServices.FilterByMinMaxAmount(minAmount, maxAmount, productsList); return(View(filterdProducts)); }
public void FilterByMinMaxAmount_works() { //Arange var minAmount = 100; var maxAmount = 500; var products = new List <Products>() { new Products { Name = "Iphone X", Price = 200, ProductColor = "Red", IsAvailable = true, ProductTypesId = 1, SpecialTagId = 2 }, new Products { Name = "Logitech Keyboard", Price = 500, ProductColor = "Black", IsAvailable = true, ProductTypesId = 2, SpecialTagId = 3 }, new Products { Name = "Skullcandy Headphone", Price = 450, ProductColor = "Blue", IsAvailable = true, ProductTypesId = 4, SpecialTagId = 1 }, new Products { Name = "Samsung Tv 32", Price = 1450, ProductColor = "Black", IsAvailable = true, ProductTypesId = 1, SpecialTagId = 1 }, new Products { Name = "Samsung D900", Price = 120, ProductColor = "Silver", IsAvailable = false, ProductTypesId = 5, SpecialTagId = 1 } }; //Act var filterProduct = productServices.FilterByMinMaxAmount(minAmount, maxAmount, products); //Assert Assert.That(filterProduct, Is.EqualTo(products.Where(m => m.Price >= 100 && m.Price <= 500))); }