public static ProductPartialViewModel ConvertToProductViewModel(this Product product)
 {
     ProductPartialViewModel productViewModel = new ProductPartialViewModel();
     productViewModel.Id = product.Id;
     productViewModel.Name = product.Name;
     productViewModel.Catagory = product.Catalog;
     productViewModel.Description = product.Description;
     productViewModel.Price = product.Price;
     productViewModel.Image = product.share_Images.Count() > 0 ? product.share_Images.First().ImagePath : "/Content/Images/404/404.png";
     productViewModel.Quantity = 1;
     productViewModel.share_Images = product.share_Images;
     return productViewModel;
 }
        /// <summary>
        /// Add a product to Cart
        /// </summary>
        /// <param name="Id">product Id</param>
        /// <returns>updated view of Cart</returns>
        public ActionResult AddToCart(int Id)
        {
            List<ProductPartialViewModel> productsInCart = new List<ProductPartialViewModel>();
            if (HttpContext.Session != null && HttpContext.Session["ASPNETShoppingCart"] != null)
            {
                productsInCart = (List<ProductPartialViewModel>)HttpContext.Session["ASPNETShoppingCart"];
            }
            // Check whether product is exist in cart or not
            bool IsExist = false;

            foreach (var item in productsInCart)
            {
                if (item.Id == Id)
                {
                    IsExist = true;
                    item.Quantity++;
                }
            }

            if (!IsExist)
            {
                Product temp = _productRepository.FindById(Id);
                ProductPartialViewModel newProductInCart = new ProductPartialViewModel()
                {
                    Id = temp.Id,
                    Name = temp.Name,
                    Catagory = temp.Catalog,
                    Description = temp.Description,
                    Price = temp.Price,
                    Image = temp.share_Images.Count() > 0 ? temp.share_Images.First().ImagePath : "/Content/Images/404/404.png",
                    Quantity = 1
                };
                productsInCart.Add(newProductInCart);
            }

            if (HttpContext.Session != null)
            {
                HttpContext.Session["ASPNETShoppingCart"] = productsInCart;
            }

            return PartialView(productsInCart);
        }