public IActionResult CloneCartFromCookie()
        {
            string requestCookie = HttpContext.Request.Cookies[_cartCookieName];
            var    cookieCart    = JsonConvert.DeserializeObject <ShoppingCart>(requestCookie);

            cookieCart.Id = UserManager.GetUserId(User);
            Repository.ShoppingCart_Add(cookieCart);

            HttpContext.Response.Cookies.Delete(_cartCookieName);

            return(RedirectToAction("ShopList", "Shop"));
        }
Example #2
0
        public ShoppingCart GetShoppingCart()
        {
            ShoppingCart cart;

            if (SignInManager.IsSignedIn(Context.User))
            {
                string cartId = UserManager.GetUserId(Context.User);
                cart = _repo.GetCartById(cartId);


                if (cart == null)
                {
                    var newCart = new ShoppingCart
                    {
                        Id = UserManager.GetUserId(Context.User)
                    };
                    _repo.ShoppingCart_Add(newCart);
                    cart = newCart;
                }
            }
            else
            {
                try
                {
                    string requestCookie = Context.Request.Cookies[_cartCookieName];
                    cart = JsonConvert.DeserializeObject <ShoppingCart>(requestCookie);
                }
                catch (Exception)
                {
                    cart = new ShoppingCart()
                    {
                        Id           = Guid.NewGuid().ToString(),
                        CartProducts = new List <CartProduct>()
                    };
                    Context.Response.Cookies
                    .Append(_cartCookieName, JsonConvert.SerializeObject(cart));
                }
            }

            return(cart);
        }