MovetoCart (before available stock changes)
Fri Aug 02 2024 13:15:38 GMT+0000 (Coordinated Universal Time)
Saved by
@iamkatmakhafola
[HttpPost]
[Route("MoveFromWishlistToCart")]
public async Task<IActionResult> MoveFromWishlistToCart([FromBody] CartViewModel model)
{
var userId = User.FindFirstValue("userId");
if (userId == null)
{
return Unauthorized("User not logged in");
}
var member = await _context.Members.FirstOrDefaultAsync(m => m.User_ID == int.Parse(userId));
if (member == null)
{
return Unauthorized("User is not a member");
}
var wishlist = await _context.Wishlists.FirstOrDefaultAsync(w => w.Member_ID == member.Member_ID);
if (wishlist == null)
{
return NotFound("Wishlist not found");
}
var wishlistItem = await _context.Wishlist_Items
.FirstOrDefaultAsync(w => w.Product_ID == model.Product_ID && w.Wishlist_ID == wishlist.Wishlist_ID);
if (wishlistItem == null)
{
return NotFound("Product not found in the wishlist");
}
var cart = await _context.Carts.FirstOrDefaultAsync(c => c.Member_ID == member.Member_ID);
if (cart == null)
{
cart = new Cart { Member_ID = member.Member_ID };
_context.Carts.Add(cart);
await _context.SaveChangesAsync();
}
var existingCartItem = await _context.Cart_Items
.FirstOrDefaultAsync(c => c.Product_ID == model.Product_ID && c.Cart_ID == cart.Cart_ID);
if (existingCartItem != null)
{
existingCartItem.Quantity += 1;
_context.Cart_Items.Update(existingCartItem);
}
else
{
var cartItem = new Cart_Item
{
Product_ID = model.Product_ID,
Quantity = 1,
Cart_ID = cart.Cart_ID
};
_context.Cart_Items.Add(cartItem);
}
_context.Wishlist_Items.Remove(wishlistItem);
await _context.SaveChangesAsync();
return Content("Product moved from wishlist to cart", "text/plain");
}
content_copyCOPY
Comments