Exemple #1
0
        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());
        }
Exemple #3
0
        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."));
        }