public float CalculateShipping(Order order) { if (order.TotalPrice < 30f) return order.TotalPrice * 0.15f; return 0; }
public void Process(Order order) { if (order.IsShipped) throw new InvalidOperationException("This order is already processed."); order.Shipment = new Shipment { Cost = _shippingCalculator.CalculateShipping(order), ShippingDate = DateTime.Today.AddDays(1) }; }
static void Main(string[] args) { var orderProcessor = new OrderProcessor(new ShippingCalculator()); var order = new Order {DatePlaced = DateTime.Now, TotalPrice = 100f}; orderProcessor.Process(order); }