Exemplo n.º 1
0
 private void ApplyProductsDiscount(IProductDiscount productDiscount)
 {
     foreach (var product in _products)
     {
         var discount = product.Discount;
         product.ApplyDiscount(productDiscount);
         _productsDiscount += product.Discount - discount;
     }
 }
 public POSTerminalService()
 {
     _calculatorService           = new CalculatorService();
     _createProductDetailsService = new CreateProductDetailsService();
     _productDiscountService      = new ProductDiscountService();
     _scanService    = new ScanService();
     _receiptService = new ReceiptService();
     _paymentService = new PaymentService(_paymentProcessor);
 }
Exemplo n.º 3
0
        public void AddProductDiscount(IProductDiscount productDiscount)
        {
            if (productDiscount is null)
            {
                throw new ArgumentNullException(nameof(productDiscount));
            }

            this.productDiscounts.Add(productDiscount);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the adjusted price.
        /// </summary>
        /// <param name="discount">The discount.</param>
        /// <param name="priceBeforeDiscount">The price before discount.</param>
        /// <returns></returns>
        public static int GetAdjustedPrice(this IProductDiscount discount, int priceBeforeDiscount, int orderTotalItemCount = 0)
        {
            if (discount == null || discount.Type == DiscountType.FreeShipping)
            {
                return(priceBeforeDiscount);
            }

            var discountValue = discount.DiscountValue;            // discount.RangedDiscountValue(orderTotalItemCount);

            if (discount.Type == DiscountType.Percentage)
            {
                return(priceBeforeDiscount - DiscountHelper.PercentageCalculation(priceBeforeDiscount, discountValue));
            }
            if (discount.Type == DiscountType.Amount)
            {
                return(priceBeforeDiscount - discountValue);
            }
            if (discount.Type == DiscountType.NewPrice)
            {
                return(discountValue);
            }
            return(priceBeforeDiscount);
        }
Exemplo n.º 5
0
 //конструктор нового продукта
 public Product(string name, ICurrency price, IProductDiscount pd)
 {
     m_name     = name;
     m_price    = price;
     p_discount = pd;
 }