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)); }
public async Task <IActionResult> Post(ShoppingCartInsertDto cartInsertDto) { var res = await _orderService.UpdateProductInCart(cartInsertDto); if (res == false) { return(Problem()); } return(Ok(res)); }
public async Task <bool> UpdateProductInCart(ShoppingCartInsertDto shoppingCartInsertDto) { try { return(await _orderrepository.UpdateProductInCart(shoppingCartInsertDto)); } catch (Exception e) { throw e; } }
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; } }