public async Task <ActionResult> AddToCart(Guid id, int quantity)
        {
            var shoppingCart = TableClient.GetTableReference("shoppingcart");

            shoppingCart.CreateIfNotExists();

            var retrieve = TableOperation.Retrieve <ProductCartEntity>(UserSession(), id.ToString());
            var result   = shoppingCart.Execute(retrieve);
            var item     = (ProductCartEntity)result.Result;

            if (item != null)
            {
                item.Quantity   = quantity;
                item.TotalPrice = quantity * item.UnitPrice;
            }
            else
            {
                var product = DocumentDbProducts().Where(xx => xx.id == id).ToList().First();
                item = new ProductCartEntity
                {
                    PartitionKey = UserSession()
                    ,
                    RowKey = id.ToString()
                    ,
                    CreateDate = DateTime.Now
                    ,
                    ProductDescription = product.Name
                    ,
                    Currency = "EUR"
                    ,
                    UnitPrice = (double)product.ListPrice
                    ,
                    TotalPrice = quantity * (double)product.ListPrice
                    ,
                    Quantity = quantity
                };
            }

            var upsert = TableOperation.InsertOrReplace(item);

            shoppingCart.Execute(upsert);

            return(RedirectToAction("ShoppingCart"));
        }
        public async Task <ActionResult> AddToCart(string productId, decimal unitPrice, int quantity)
        {
            var shoppingCart = TableClient.GetTableReference("shoppingcart");

            shoppingCart.CreateIfNotExists();

            var userSession = Membership.GetUser().UserName;

            var retrieve = TableOperation.Retrieve <ProductCartEntity>(userSession, productId);
            var result   = shoppingCart.Execute(retrieve);
            var item     = (ProductCartEntity)result.Result;

            if (item != null)
            {
                item.UnitPrice = unitPrice;
                item.Quantity  = quantity;
            }
            else
            {
                item = new ProductCartEntity
                {
                    PartitionKey = userSession
                    ,
                    RowKey = productId
                    ,
                    CreateDate = DateTime.Now
                    ,
                    Currency = "EUR"
                    ,
                    UnitPrice = unitPrice
                    ,
                    Quantity = quantity
                };
            }
            item.TotalPrice = item.UnitPrice * item.Quantity;

            var upsert = TableOperation.InsertOrReplace(item);

            shoppingCart.Execute(upsert);

            return(RedirectToAction("Index"));
        }