예제 #1
0
        public void ChangeProductQuantity(ProductId productId, int quantity)
        {
            var validator = new ProductInInventoryValidator().And(new CartItemInCartValidator(Items));

            var result = validator.Validate(new CartItem(productId, quantity));

            if (!result.IsValid)
            {
                throw new CartException(result.Errors.First().ErrorMessage);
            }

            RaiseEvent(new ProductQuantityChangedEvent(productId, GetCartItemByProduct(productId).Quantity, quantity));
        }
예제 #2
0
        public void AddProduct(CartItem cartItem)
        {
            var validator = new ProductInInventoryValidator().And(new CartItemNotInCartValidator(Items));

            var result = validator.Validate(cartItem);

            if (!result.IsValid)
            {
                throw new CartException(result.Errors.First().ErrorMessage);
            }

            RaiseEvent(new ProductAddedEvent(cartItem.ProductId, cartItem.Quantity));
        }