public async Task <IViewComponentResult> InvokeAsync() { var cart = new ShoppingCartHelper(this.HttpContext); var cartId = cart.GetCartId(); int cartCount = await apiHelper.GetAsync <int>("/api/ShoppingCart/Count?id=" + cartId); if (this.HttpContext.User.Identity.IsAuthenticated) { string userName = new ContextHelper().GetUsernameFromClaims(this.HttpContext); int userCartCount = await apiHelper.GetAsync <int>("/api/ShoppingCart/Count?id=" + userName); if (userName != cartId && userCartCount == 0) { CartMigration migration = new CartMigration() { SourceCartId = cartId, DestCartId = userName }; await apiHelper.PostAsync <CartMigration>("/api/ShoppingCart/MigrateCart", migration); cartCount = userCartCount; } if (cartId != userName) { cart.SetCartId(userName); cartCount = await apiHelper.GetAsync <int>("/api/ShoppingCart/Count?id=" + userName); } } ViewData["CartCount"] = cartCount; return(View()); }
public ActionResult MigrateCart(CartMigration cartMigration) { new ShoppingCart(storeDB, cartMigration.SourceCartId).MigrateCart(cartMigration.DestCartId); return(Ok()); }