public IActionResult AddToCard(int productId, int count) { var returnMessage = new ReturnMessage(); var product = Products.Where(q => q.Id == productId).FirstOrDefault(); if (product == null) { returnMessage.SetErrorMessage("Ürün listesinde bulunamadı."); return(Json(returnMessage)); } var cartList = SessionHelper.GetObjectFromJson <List <ProductModel> >(HttpContext.Session, "cart"); if (cartList == null) { cartList = new List <ProductModel>(); } if (!cartList.Any(q => q.Id == productId)) { if (product.Quantity >= count) { product.BasketCount = count; } else { returnMessage.setMessageFirst("Yetersiz Stok!", product.BasketCount, product); return(Json(returnMessage)); } cartList.Add(product); returnMessage.SetSuccessMessage("Ürün başarıyla eklendi.", product); } else { var cartItem = cartList.FirstOrDefault(q => q.Id == productId); if (cartItem.BasketCount > 0) { if (cartItem.Quantity >= count) { cartItem.BasketCount = count; } returnMessage.setMessage("Ürün sepette mevcut, artırmak ister misiniz?", cartItem.BasketCount, cartItem); SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cartList); return(Json(returnMessage)); } cartItem.BasketCount = count; returnMessage.SetSuccessMessage("Ürün başarıyla eklendi.", cartItem); } SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cartList); return(Json(returnMessage)); }
public async Task <IActionResult> AddToCart(string productId, int?quantity) { string cartId = GetCart(_services); var returnMessage = new ReturnMessage(); var product = await _productRepository.All.FirstOrDefaultAsync(d => d.Id == productId); if (product == null) { returnMessage.SetErrorMessage("Không tìm thấy trong danh sách sản phẩm."); return(Json(returnMessage)); } _shoppingCart.AddToCartSession(product, cartId, quantity.GetValueOrDefault()); //var dto = new ProductViewModel(); //PropertyCopy.Copy(product, dto); var session = HttpContext.Session.Get <List <CartProductViewModel> >("AddProducts"); if (session != null) { //Check exist with item product id if (session.Any(x => x.Id == productId)) { foreach (var item in session) { //Update quantity for product if match product id if (item.Id == productId) { //if (quantity != null) item.Quantity += (int)quantity; //item.Price = product.Price.GetValueOrDefault(); //hasChanged = true; if (quantity != null && quantity > 0) { item.Quantity = quantity.GetValueOrDefault(); returnMessage.setMessage("Sản phẩm đã có sẵn trong giỏ, bạn có muốn tăng thêm không?", item.Quantity); } HttpContext.Session.Set("AddProducts", session); return(Json(returnMessage)); } } } else { if (quantity != null) { session.Add(new CartProductViewModel() { Id = product.Id, Product = _productRepository.GetProductViewModelById(product.Id), Price = (long)product.PriceAfter.GetValueOrDefault(), Quantity = quantity.Value }); } //hasChanged = true; returnMessage.SetSuccessMessage("Sản phẩm đã được thêm thành công."); HttpContext.Session.Set("AddProducts", session); return(Json(returnMessage)); } //Update back to cart //if (hasChanged) //{ // HttpContext.Session.Set("AddProducts", session); //} } else { //Add new cart if (quantity != null) { { var cart = new List <CartProductViewModel> { new CartProductViewModel() { Id = product.Id, Product = _productRepository.GetProductViewModelById(product.Id), Price = (long)product.PriceAfter.GetValueOrDefault(), Quantity = quantity.Value } }; HttpContext.Session.Set("AddProducts", cart); returnMessage.SetSuccessMessage("Sản phẩm đã được thêm thành công."); return(Json(returnMessage)); } } else { returnMessage.setMessageFirst("Kiểm tra số lượng"); return(Json(returnMessage)); } } return(Json(returnMessage)); }