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); }
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); }
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); }