Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 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));
 }
Ejemplo n.º 3
0
        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));
        }