public static CartProduct Create(Customer customer, Cart cart, Product product, int quantity, TaxService taxService)
        {
            if (cart == null)
            {
                throw new ArgumentNullException("cart");
            }

            if (product == null)
            {
                throw new ArgumentNullException("product");
            }

            CartProduct cartProduct = new CartProduct()
            {
                CustomerId = customer.Id,
                CartId     = cart.Id,
                ProductId  = product.Id,
                Quantity   = quantity,
                Created    = DateTime.Now,
                Cost       = product.Cost,
                Tax        = taxService.Calculate(customer, product)
            };

            return(cartProduct);
        }
 public static PurchasedProduct Create(Purchase purchase, CartProduct cartProduct)
 {
     return new PurchasedProduct()
     {
         Product = cartProduct.Product,
         Purchase = purchase,
         Quantity = cartProduct.Quantity
     };
 }
        public virtual void Add(CartProduct cartProduct)
        {
            if (cartProduct == null)
            {
                throw new ArgumentNullException();
            }

            this.cartProducts.Add(cartProduct);
        }
        public virtual void Remove(Product product)
        {
            if (product == null)
            {
                throw new ArgumentNullException("product");
            }

            CartProduct cartProduct =
                this.cartProducts.Find(new ProductInCartSpec(product).IsSatisfiedBy);

            cartProduct.Active = false;
        }
예제 #5
0
        public virtual void Add(CartProduct cartProduct)
        {
            if (cartProduct == null)
            {
                throw new ArgumentNullException();
            }

            DomainEvents.Raise <ProductAddedCart>(new ProductAddedCart()
            {
                CartProduct = cartProduct
            });

            this.cartProducts.Add(cartProduct);
        }
예제 #6
0
        public virtual void Remove(Product product)
        {
            if (product == null)
            {
                throw new ArgumentNullException("product");
            }

            CartProduct cartProduct =
                this.cartProducts.Find(new ProductInCartSpec(product).IsSatisfiedBy);

            DomainEvents.Raise <ProductRemovedCart>(new ProductRemovedCart()
            {
                CartProduct = cartProduct
            });

            this.cartProducts.Remove(cartProduct);
        }