Exemplo n.º 1
0
 public void AddProduct(Product product, int amount, string categoryName, IImageUploader uploader, PriceCalculator calculator)
 {
     if (Entries.ContainsKey(product.SkuCode))
     {
         // TODO: check if this is actually the same product
         var entry = Entries[product.SkuCode];
         entry.Amount     += amount;
         entry.FinalPrice += calculator.CalculateFinalPrice(product, amount);
     }
     else
     {
         Entries[product.SkuCode] = new CartEntry()
         {
             Id          = product.Id,
             SkuCode     = product.SkuCode,
             Title       = product.Title,
             NormalPrice = product.Price,
             Discount    = product.Discount,
             ImageUrl    = uploader.GetImageUrl(product.MainImageId),
             Amount      = amount,
             FinalPrice  = calculator.CalculateFinalPrice(product, amount),
             Category    = categoryName,
         };
     }
 }
        static void Main(string[] args)
        {
            var myPriceCalculator = new PriceCalculator();

            Debug.WriteLine("The base price is $10 and the final price is $"
                            + myPriceCalculator.CalculateFinalPrice(10).ToString());
        }
Exemplo n.º 3
0
    public void CalculateFinalPriceBefore10AM_BasePriceTenDollars_FinalPriceEightDollars()
    {
        var myPriceCalculator = new PriceCalculator();

        decimal result = myPriceCalculator.CalculateFinalPrice(10, new DateTime(2018, 06, 21, 09, 30, 00));

        Assert.AreEqual(decimal.Parse("8"), result);
    }
Exemplo n.º 4
0
    public void CalculateFinalPriceAfter3PM_BasePriceTenDollars_FinalPriceTenDollars()
    {
        var myPriceCalculator = new PriceCalculator();

        decimal result = myPriceCalculator.CalculateFinalPrice(10, new DateTime(2018, 06, 21, 15, 30, 00));

        Assert.AreEqual(decimal.Parse("10"), result);
    }
Exemplo n.º 5
0
    public void CalculateFinalPriceAfter10AMAndBefore12Noon_BasePriceTenDollars_FinalPriceNineDollars()
    {
        var myPriceCalculator = new PriceCalculator();

        decimal result = myPriceCalculator.CalculateFinalPrice(10, new DateTime(2018, 06, 21, 11, 30, 00));

        Assert.AreEqual(decimal.Parse("9"), result);
    }
Exemplo n.º 6
0
            public CashRegister()
            {
                _priceDataRepo = new PriceDataRepository();
                _priceDataRepo.CalulateFinalPrices();

                foreach (var price in _priceDataRepo.PriceData)
                {
                    var pricingRecord = new PricingRecord
                    {
                        BasePrice  = price,
                        FinalPrice = _priceCalculator.CalculateFinalPrice(price, DateTime.Now)
                    };

                    PriceResults.Add(pricingRecord);
                }
            }