public double CalculateTotal(ProductListandScanCount productsListandCount)
        {
            if (productsListandCount == null)
            {
                return(totalprice);
            }

            try
            {
                foreach (var scanneditems in productsListandCount.ScannedProducts.Where(a => a != null))
                {
                    var item            = productsListandCount.ProductList._ProductList[scanneditems.Name];
                    var productfactdata = new ProducFactTable(scanneditems, item);
                    if (item.VolumePrice != null)
                    {
                        totalprice = totalprice + _calculateService.CalculateBundlePrice(productfactdata);
                    }
                    else
                    {
                        totalprice = totalprice + _calculateService.CalculateItemPrice(productfactdata);
                    }
                }
            }
            catch
            {
                //Log Exception
            }

            return(totalprice);
        }
Example #2
0
 public double CalculateItemPrice(ProducFactTable productFactTable)
 {
     if (productFactTable == null || productFactTable.ScannedProduct == null || productFactTable.Product == null)
     {
         return(price);
     }
     try
     {
         price = productFactTable.ScannedProduct.Count * productFactTable.Product.OriginalPrice;
     }
     catch
     {
         //Log Exception
     }
     return(price);
 }
Example #3
0
 public double CalculateBundlePrice(ProducFactTable productFactTable)
 {
     if (productFactTable == null || productFactTable.ScannedProduct == null || productFactTable.Product == null)
     {
         return(price);
     }
     try
     {
         bundle    = productFactTable.ScannedProduct.Count / productFactTable.Product.VolumePrice.Volume;
         remaining = productFactTable.ScannedProduct.Count % productFactTable.Product.VolumePrice.Volume;
         price     = (bundle * productFactTable.Product.VolumePrice.Price) + (remaining) * productFactTable.Product.OriginalPrice;
     }
     catch
     {
         //Log Exception
     }
     return(price);
 }
 public void Dispose()
 {
     product          = null;
     scannedProduct   = null;
     productFactTable = null;
 }
 public CalculateService()
 {
     product          = new Product(Item.A, 1.25, new VolumePrice(3, 3));
     scannedProduct   = new ScannedProducts(Item.A, 3);
     productFactTable = new ProducFactTable(scannedProduct, product);
 }