/// <summary>
        /// The remove.
        /// </summary>
        /// <param name="product">
        /// The product.
        /// </param>
        /// <param name="amount">
        /// The amount.
        /// </param>
        public void Remove(CartProduct product, int amount)
        {
            NameValueCollection products = this.HttpContext.Request.Cookies["cart"] != null
                                               ? this.HttpContext.Request.Cookies["cart"].Values
                                               : null;
            if (products != null)
            {
                string productInCookie = products.Get(product.Id.ToString());

                if (productInCookie != null)
                {
                    int currentAmount;
                    int.TryParse(productInCookie, out currentAmount);
                    if ((currentAmount - amount) <= 0)
                    {
                        this.Remove(product);
                    }
                    else
                    {
                        products[product.Id.ToString()] = (currentAmount - amount).ToString();

                        var cookie = new HttpCookie("cart");
                        cookie.Values.Add(products);

                        this.HttpContext.Response.Cookies.Add(cookie);
                    }
                }
            }
        }
 /// <summary>
 /// The remove.
 /// </summary>
 /// <param name="product">
 /// The product.
 /// </param>
 public void Remove(CartProduct product)
 {
     this.Remove(product.Product);
 }