public ActionResult Index(string ProductName)
        {
            try
            {
                if (!String.IsNullOrEmpty(ProductName))
                {
                    try
                    {
                        var product = LetsShopImplementation.SearchProduct(ProductName);

                        cache2.Add("SearchProductData", LetsShopImplementation.SearchProduct(ProductName),
                                    CacheItemPriority.High, null, absolutetime);

                        List<int> orderidlist = new List<int>();

                        CartAndAllProducts cp = new CartAndAllProducts();
                        List<AddToCartModel> cartlist = ShoppingCartImplementation.GetFromCart(@User.Identity.Name);
                        foreach (var x in cartlist)
                        {
                            orderidlist.Add(x.Product.ProductId);
                        }
                        ViewBag.Message = orderidlist;

                        if (product == null)
                        {
                            return RedirectToAction("Index", "Product");
                        }
                        else // if productname = "Alienware", search for "Alen", "Alien" and "Alienware" reaches here.
                        {
                            cp.productlist = product;
                            cp.cartlist = cartlist;

                            return View(cp);
                        }
                    }
                    catch (Exception)
                    {
                        return RedirectToAction("ErrorPage", "Product");
                    }
                }
                else  // empty search reaches here.
                {
                    ViewBag.errormessage = " Enter a name to search the product!!";
                    List<int> orderidlist = new List<int>();

                    CartAndAllProducts cp = new CartAndAllProducts();
                    List<AddToCartModel> cartlist = ShoppingCartImplementation.GetFromCart(@User.Identity.Name);

                    var products = LetsShopImplementation.GetProducts();

                    foreach (var x in cartlist)
                    {
                        orderidlist.Add(x.Product.ProductId);
                    }
                    ViewBag.Message = orderidlist;

                    cp.productlist = products;
                    cp.cartlist = cartlist;

                    return View(cp);
                }
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, "UI Policy");
                if (rethrow) throw;
                return RedirectToAction("ErrorPage", "Product");
            }
        }
        /// <summary>
        ///  GET: /Product/
        /// </summary>
        /// <returns></returns>
        public ActionResult Index(int? page)
        {
            List<int> orderidlist = new List<int>();

            List<AddToCartModel> cartlist = ShoppingCartImplementation.GetFromCart(@User.Identity.Name);

            CartAndAllProducts cp = new CartAndAllProducts();

            foreach (var x in cartlist)
            {
                orderidlist.Add(x.Product.ProductId);
            }
            ViewBag.Message = orderidlist;

            List<Product> productcacheData = new List<Product>();
            productcacheData = (List<Product>)cache["ProductData"];

            if (productcacheData == null)
            {
                cache.Add("ProductData", LetsShopImplementation.GetProducts(),
                                                        CacheItemPriority.High, null, absolutetime);
                //productcacheData = (List<Product>)cache["ProductData"];
            }

            List<Product> prodlist = productcacheData;
            cp.productlist = prodlist;
            cp.cartlist = cartlist;

            return View(cp);
        }