public ShoppingCart CreateCart()
        {
            var cart = new ShoppingCart();

            _shoppingContext.Add(cart);
            _shoppingContext.Save();

            _httpContext.HttpContext.Response.Cookies.Append("ShoppingCartId", cart.Id.ToString());

            return(cart);
        }
        public JsonResult Add(Guid id, AddItemModel model)
        {
            var targetCart = _shoppingContext.Carts.FirstOrDefault(cart => cart.Id == id);

            if (targetCart == null)
            {
                return(JsonError(HttpStatusCode.NotFound, "Cart not found"));
            }

            var itemToAdd = _shoppingContext.Catalog.FirstOrDefault(item => item.Id == model.ItemId);

            if (itemToAdd == null)
            {
                return(JsonError(HttpStatusCode.BadRequest, "Item not found"));
            }

            try
            {
                var rnd = new Random();
                if (rnd.Next(1, 100) > 70)
                {
                    // Oj vad jobbigt det var idag
                    Thread.Sleep(3000);
                }

                if (!string.IsNullOrEmpty(model.Customization))
                {
                    var customItem = new CustomizedJewelry <Jewelry>(model.Customization, itemToAdd);
                    targetCart.Add(model.Amount, model.Size, customItem);
                }
                else
                {
                    targetCart.Add(model.Amount, model.Size, itemToAdd);
                }
            }
            catch (Exception ex)
            {
                return(JsonError(HttpStatusCode.BadRequest, ex.Message));
            }

            _shoppingContext.Save();
            return(Json(targetCart));
        }