Beispiel #1
0
        public void InitializeViewModel()
        {
            var removeAllFromCartCommand
                = new RemoveAllFromCartCommand(shoppingCartRepository, productRepository);

            RemoveAllFromCartCommand = new RelayCommand(
                execute: () =>
            {
                removeAllFromCartCommand.Execute();

                Refresh();
            },
                canExecute: () => removeAllFromCartCommand.CanExecute()
                );

            CheckoutCommand = new RelayCommand(
                execute: () => {
                var total = LineItems.Sum(x => x.Product.Price * x.Quantity);
                MessageBox.Show($"Shopping cart total: ${total}");
            },
                canExecute: () => LineItems.Any()
                );

            Refresh();
        }
Beispiel #2
0
        public void Test()
        {
            // Create commands
            string itemName = "Item1";

            var stockManager = new InMemoryStockManagerService();
            var cart         = new ShoppingCart();

            var item1 = new ShoppingCartItem {
                Name = itemName, Amount = 1, Price = 5m
            };
            var item2 = new ShoppingCartItem {
                Name = itemName, Amount = 1, Price = 25m
            };

            stockManager.GetItemsCountLeft(itemName).Should().NotBe(0);

            var addCartItemCommand1   = new AddItemToCartCommand(stockManager, cart, item1);
            var addCartItemCommand2   = new AddItemToCartCommand(stockManager, cart, item1);
            var removeCartItemCommand = new RemoveItemFromCart(stockManager, cart, item1);
            var addCartItemCommand3   = new AddItemToCartCommand(stockManager, cart, item2);
            var removeAllItemsCommand = new RemoveAllFromCartCommand(stockManager, cart);

            // Execute
            if (addCartItemCommand1.CanExecute())
            {
                addCartItemCommand1.Execute();
            }
            stockManager.GetItemsCountLeft(itemName).Should().Be(0);
            if (addCartItemCommand2.CanExecute())
            {
                addCartItemCommand2.Execute();
            }
            if (removeCartItemCommand.CanExecute())
            {
                removeCartItemCommand.Execute();
            }
            stockManager.GetItemsCountLeft(itemName).Should().Be(1);

            if (addCartItemCommand3.CanExecute())
            {
                addCartItemCommand3.Execute();
            }
            stockManager.GetItemsCountLeft(itemName).Should().Be(0);

            if (removeAllItemsCommand.CanExecute())
            {
                removeAllItemsCommand.Execute();
            }
            stockManager.GetItemsCountLeft(itemName).Should().Be(1);
        }