public string Generate(IEnumerable <IProductPriceInfo> productInfos, ICartCoupon cartCoupon) { if (productInfos == null) { throw new ArgumentNullException(nameof(productInfos)); } var sb = new StringBuilder(); sb.AppendLine("Tnx!"); sb.AppendLine(); sb.AppendLine("Name...Price...Qty...Total Price"); foreach (var productInfo in productInfos) { sb.AppendLine($"{productInfo.Product.Name}...{productInfo.Product.Price}p...{productInfo.InCartQty}...{productInfo.GetTotalPrice()}"); if (productInfo.Coupon != null && productInfo.Coupon.Discount > 0) { sb.AppendLine($"Product discount: {productInfo.Coupon.Discount*100}%"); } sb.AppendLine(); } sb.AppendLine(); if (cartCoupon != null && cartCoupon.Discount > 0) { sb.AppendLine($"Total: {cartCoupon.GetTotalPrice(productInfos)}"); sb.AppendLine($"Cart discount: {cartCoupon.Discount * 100}%"); } else { sb.AppendLine($"Total: {productInfos.Sum(p => p.GetTotalPrice())}"); } return(sb.ToString()); }
public void SetCartCoupon(ICartCoupon cartCoupon) { CartCoupon = cartCoupon; }
public void SetCartCoupon(ICartCoupon cartCoupon) { var setCouponCommand = _couponCommandFactory.CreateSetCartCouponCommand(ProductCart, cartCoupon); _commandManager.ExecuteCommand(setCouponCommand); }
public SetCouponToCartCommand(IProductCart cart, ICartCoupon cartCoupon) { _cart = cart; _newCoupon = cartCoupon; _previousCoupon = _cart.CartCoupon; }
private static void PrintReceipt(IEnumerable <IProductPriceInfo> cartProducts, ICartCoupon cartCartCoupon) { var receiptText = new SimpleReceiptGenerator().Generate(cartProducts, cartCartCoupon); new ConsolePrinter().Print(receiptText); }
public ICommand CreateSetCartCouponCommand(IProductCart cart, ICartCoupon cartCoupon) { return(new SetCouponToCartCommand(cart, cartCoupon)); }