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)));
        }