public void WhenRemovingAddedProduct_ShouldClearProductFromCartAndReturnZeroQuantity() { var productsRepository = new ProductsRepository(); var cartRepository = new ShoppingCartRepository(); var cartManager = new CartCommandManager(); var canon = new Product("EOSR1", "Canon EOS R", 1099); var addCanonCommand = new AddToCartCommand( cartRepository, productsRepository, canon); var removeCanonCommand = new RemoveFromCartCommand( cartRepository, productsRepository, canon ); cartManager.Execute(addCanonCommand); cartManager.Execute(addCanonCommand); cartManager.Execute(removeCanonCommand); cartManager.Execute(removeCanonCommand); cartManager.Execute(removeCanonCommand); cartRepository.Get("EOSR1").Quantity.Should().Be(0); }
public ProductViewModel(ShoppingCartViewModel shoppingCartViewModel, IShoppingCartRepository shoppingCartRepository, IProductRepository productRepository, Product product, int quantity = 0) { Product = product; Quantity = quantity; var addToCartCommand = new AddToCartCommand(shoppingCartRepository, productRepository, product); var increaseQuantityCommand = new ChangeQuantityCommand(ChangeQuantityCommand.Operation.Increase, shoppingCartRepository, productRepository, product); var decreaseQuantityCommand = new ChangeQuantityCommand(ChangeQuantityCommand.Operation.Decrease, shoppingCartRepository, productRepository, product); var removeFromCartCommand = new RemoveFromCartCommand(shoppingCartRepository, productRepository, product); AddToCartCommand = new RelayCommand( execute: () => { addToCartCommand.Execute(); shoppingCartViewModel.Refresh(); }, canExecute: () => addToCartCommand.CanExecute()); IncreaseQuantityCommand = new RelayCommand( execute: () => { increaseQuantityCommand.Execute(); shoppingCartViewModel.Refresh(); }, canExecute: () => increaseQuantityCommand.CanExecute()); DecreaseQuantityCommand = new RelayCommand( execute: () => { decreaseQuantityCommand.Execute(); shoppingCartViewModel.Refresh(); }, canExecute: () => decreaseQuantityCommand.CanExecute()); RemoveFromCartCommand = new RelayCommand( execute: () => { removeFromCartCommand.Execute(); shoppingCartViewModel.Refresh(); }, canExecute: () => removeFromCartCommand.CanExecute()); }
public async Task <IActionResult> RemoveFromCart(string cartItemId) { var request = new RemoveFromCartCommand { CartItemId = cartItemId }; await _mediator.Send(request); return(Ok()); }
public async Task <IActionResult> RemoveFromCart([FromBody] int ID) { var userID = User.Claims.First(x => x.Type == "UserID").Value; var cmd = new RemoveFromCartCommand(userID, ID); var response = await _mediator.Send(cmd); if (response == true) { return(Ok($"Successfully removed game of id: {ID}")); } return(BadRequest("Something bad has happend while trying to remove item from cart.")); }