public JsonResult GetCurrentCart()
        {
            try
            {
                var          id   = CommerceUserContext.Current.UserId;
                var          cart = CartCacheHelper.GetCart(id);
                CartApiModel cartResult;

                // The following condition stops the creation of empty carts on startup.
                if (cart == null && CartCookieHelper.DoesCookieExistForCustomer(id))
                {
                    var response = CartManager.GetCart(CommerceUserContext.Current.UserId, true);
                    cartResult = new CartApiModel(response.ServiceProviderResult);
                    if (response.ServiceProviderResult.Success && response.Result != null)
                    {
                        cartResult.Initialize(response.ServiceProviderResult.Cart);
                        if (response.ServiceProviderResult.Cart != null)
                        {
                            CartCacheHelper.AddCartToCache(response.ServiceProviderResult.Cart as CommerceCart);
                        }
                    }
                }
                else
                {
                    cartResult = new CartApiModel();
                    cartResult.Initialize(cart);
                }

                return(Json(cartResult, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new ErrorApiModel("GetCurrentCart", e), JsonRequestBehavior.AllowGet));
            }
        }
示例#2
0
        public CSCartBaseJsonResult GetCurrentCart()
        {
            var id   = this.CurrentVisitorContext.GetCustomerId();
            var cart = _cartCacheService.GetCart(id);

            CSCartBaseJsonResult cartResult;

            // The following condition stops the creation of empty carts on startup.
            if (cart == null && CartCookieHelper.DoesCookieExistForCustomer(id))
            {
                var response = _cartManager.GetCurrentCart(CurrentStorefront, CurrentVisitorContext, true);
                cartResult = new CSCartBaseJsonResult(response.ServiceProviderResult);
                if (response.ServiceProviderResult.Success && response.Result != null)
                {
                    cartResult.Initialize(response.ServiceProviderResult.Cart, _productResolver);
                    if (response.ServiceProviderResult.Cart != null)
                    {
                        _cartCacheService.AddToCart(response.ServiceProviderResult.Cart as CommerceCart);
                    }
                }
            }
            else
            {
                cartResult = new CSCartBaseJsonResult();
                cartResult.Initialize(cart, _productResolver);
            }

            return(cartResult);
        }
示例#3
0
        public JsonResult GetCurrentCart()
        {
            try
            {
                var id        = this.CurrentVisitorContext.GetCustomerId();
                var cartCache = CommerceTypeLoader.CreateInstance <CartCacheHelper>();
                var cart      = cartCache.GetCart(id);
                AXCartBaseJsonResult cartResult;

                // The following condition stops the creation of empty carts on startup.
                if (cart == null && CartCookieHelper.DoesCookieExistForCustomer(id))
                {
                    var response = this.CartManager.GetCurrentCart(CurrentStorefront, CurrentVisitorContext, true);
                    cartResult = new AXCartBaseJsonResult(response.ServiceProviderResult);
                    if (response.ServiceProviderResult.Success && response.Result != null)
                    {
                        cartResult.Initialize(response.ServiceProviderResult.Cart);
                        if (response.ServiceProviderResult.Cart != null)
                        {
                            cartCache.AddCartToCache(response.ServiceProviderResult.Cart as CommerceCart);
                        }
                    }
                }
                else
                {
                    cartResult = new AXCartBaseJsonResult();
                    cartResult.Initialize(cart);
                }

                return(Json(cartResult, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                CommerceLog.Current.Error("GetCurrentCart", this, e);
                return(Json(new BaseJsonResult("GetCurrentCart", e), JsonRequestBehavior.AllowGet));
            }
        }