예제 #1
0
        public void UpdateProductInCart_WhenCalled_InsertInCartTable()
        {
            var mockOrderRepository = new Mock <IOrderRepository>();
            var register            = new OrderService(mockOrderRepository.Object);

            var insertDto = new ShoppingCartInsertDto();
            var res       = register.UpdateProductInCart(insertDto);

            mockOrderRepository.Verify(s => s.UpdateProductInCart(insertDto));
        }
예제 #2
0
        public async Task <IActionResult> Post(ShoppingCartInsertDto cartInsertDto)
        {
            var res = await _orderService.UpdateProductInCart(cartInsertDto);

            if (res == false)
            {
                return(Problem());
            }

            return(Ok(res));
        }
예제 #3
0
 public async Task <bool> UpdateProductInCart(ShoppingCartInsertDto shoppingCartInsertDto)
 {
     try
     {
         return(await _orderrepository.UpdateProductInCart(shoppingCartInsertDto));
     }
     catch (Exception e)
     {
         throw e;
     }
 }
예제 #4
0
        public async Task <bool> UpdateProductInCart(ShoppingCartInsertDto product)
        {
            try
            {
                using (var connection = new SqlConnection(_conString))
                {
                    var sql = $"SELECT * FROM CartItems WHERE CartItems.CartId = '{product.CartId}' AND CartItems.ProductId = {product.ProductId};";
                    connection.Open();
                    List <CartItems> item = connection.QueryAsync <CartItems>(sql).Result.ToList();
                    if (item == null || item.Count == 0)
                    {
                        Guid obj = Guid.NewGuid();

                        sql = "INSERT INTO CartItems (ItemId, CartId, Quantity, DateCreated, ProductId) VALUES (@ItemId, @CartId, @Quantity, @DateCreated, @ProductId);";
                        var affectedRows = await connection.ExecuteAsync(sql, new
                        {
                            ItemId      = obj.ToString(),
                            CartId      = product.CartId,
                            Quantity    = 1,
                            DateCreated = DateTime.Now,
                            ProductId   = product.ProductId
                        });

                        return(affectedRows > 0 ? true : false);
                    }
                    else
                    {
                        sql = "UPDATE CartItems SET  Quantity = @Quantity WHERE ItemId = @ItemId;";
                        var count        = item.FirstOrDefault().Quantity + 1;
                        var affectedRows = await connection.ExecuteAsync(sql, new
                        {
                            Quantity = count,
                            ItemId   = item.FirstOrDefault().ItemId
                        });

                        return(affectedRows > 0 ? true : false);
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }