private void AddProductToCart(ShoppingCartProductDTO apiProduct, Product product, ShoppingCart cart) { var newCartProduct = new ShoppingCartProductDTO() { Id = product.Id, Name = product.Name, Quantity = apiProduct.Quantity, Price = product.Price }; if (cart.CartDataJSON != null) { var productsInCart = JsonSerializer.Deserialize <List <ShoppingCartProductDTO> >(cart.CartDataJSON); //if we already have the product in cart, increade quantity if (productsInCart.FirstOrDefault(x => x.Id == newCartProduct.Id) != null) { productsInCart.First(x => x.Id == newCartProduct.Id).Quantity += newCartProduct.Quantity; } else { productsInCart.Add(newCartProduct); } cart.CartDataJSON = JsonSerializer.Serialize(productsInCart); } else { cart.CartDataJSON = JsonSerializer.Serialize(new List <ShoppingCartProductDTO>() { newCartProduct }); } _repositoryWrapper.IShoppingCartRepository.Update(cart); _repositoryWrapper.Save(); }
public IActionResult UpdateShoppingCart(ShoppingCartProductDTO apiProduct) { if (!ModelState.IsValid) { return(BadRequest()); } try { //find product to add Product product = _repositoryWrapper.IProductRepository.GetByCondition(x => x.Id == apiProduct.Id); if (product == null) { return(NotFound()); } //handle shopping cart update ShoppingCart cart = GetOrCreateShoppingCart(); if (cart != null) { AddProductToCart(apiProduct, product, cart); return(new JsonResult(new ShoppingCartDTO(cart.Id, cart.CartDataJSON))); } } catch (Exception e) { _repositoryWrapper.ILog.Create(new Log { Logtype = LOG_TYPE.Error, Message = e.Message, Timestamp = DateTime.Now }); _repositoryWrapper.Save(); return(BadRequest(ModelState)); } return(BadRequest(ModelState)); }
public async Task <bool> AddProduct(ShoppingCartDTO cart, ShoppingCartProductDTO product) { var request = new AddProductRequest(cart.Id, product); var response = await restClient.Put <AddProductRequest, AddProductResponse>( routing.URL, routing.AddProduct, request, HeaderAccept.Json); return(response.IsSuccess); }
public IActionResult Add(ShoppingCartProductDTO shoppingCartProduct) { //todo : login servise checktoken ı cagır //eğer ilgili token gecersizse login api hata doner bizde sepete ekleme işlemini iptal ederiz., //checktoken başarılı dondugu varsayıp devam ediyoruz. (****eklenecek) //checktoken userın idsini donsun ShoppingCartResponse response = new ShoppingCartResponse(); response = _service.Add(shoppingCartProduct.Token, shoppingCartProduct.UserID, shoppingCartProduct.ProductID, shoppingCartProduct.ProductCount); return(response.Code != (int)Constants.ResponseCode.SUCCESS ? StatusCode(500, response) : StatusCode(201, response)); }