public HandleAddProduct( IRepository <Cart> cartRepository, IProductPriceCalculator productPriceCalculator ) { this.cartRepository = cartRepository; this.productPriceCalculator = productPriceCalculator; }
public CartCommandHandler( IRepository <Cart> cartRepository, IProductPriceCalculator productPriceCalculator) { Guard.Against.Null(cartRepository, nameof(cartRepository)); Guard.Against.Null(productPriceCalculator, nameof(productPriceCalculator)); this.cartRepository = cartRepository; this.productPriceCalculator = productPriceCalculator; }
public void AddProduct( IProductPriceCalculator productPriceCalculator, ProductItem productItem) { if (Status != CartStatus.Pending) { throw new InvalidOperationException($"Adding product for the cart in '{Status}' status is not allowed."); } var pricedProductItem = productPriceCalculator.Calculate(productItem).Single(); var @event = ProductAdded.Create(Id, pricedProductItem); Enqueue(@event); Apply(@event); }
public MilkDiscountPriceDecorator(IProductPriceCalculator productPriceCalculator) : base(productPriceCalculator) { }
public ProductPriceCalculatorDec(IProductPriceCalculator productPriceCalculator) { _productPriceCalculator = productPriceCalculator; Items = productPriceCalculator.Items; AppliedDiscounts = productPriceCalculator.AppliedDiscounts; }
public Checkout(IProductRepository productRepository, IBasket basket, IProductPriceCalculator productPriceCalculator) { this.productRepository = productRepository; this.basket = basket; this.productPriceCalculator = productPriceCalculator; }