public decimal CalculateTotal(Order order) { decimal currentTotal = 0; foreach (AbstractCalculator calculator in _calculators) { currentTotal = calculator.Calculate(currentTotal, order); } return currentTotal; }
private static decimal CalculateTotal(Order order) { decimal total = 0; foreach (OrderItem item in order.Items) { total += (item.Quantity * item.CostPerItem); } return total; }
public abstract decimal Calculate(decimal currentTotal, Order order);
public override decimal Calculate(decimal currentTotal, Order order) { return currentTotal + CalculateTotal(order); }
private decimal GetShippingTotal(Order order) { decimal shippingTotal = 0; foreach (OrderItem item in order.Items) { decimal itemShippingCost = ShippingCost * item.Quantity; if (item.IsFragile) { itemShippingCost *= FragileShippingPremium; } shippingTotal += itemShippingCost; } return shippingTotal; }
public override decimal Calculate(decimal currentTotal, Order order) { return currentTotal + GetShippingTotal(order); }
private static bool IsNewZealand(Order order) { return (order.CountryCode == "NZ"); }
public override decimal Calculate(decimal currentTotal, Order order) { if (IsNewZealand(order)) { return (currentTotal * _gstRate); } return currentTotal; }