12. public class Order
{
public void Cancel()
{
if (status != OrderStatusEnum.Shipped)
//cancel
}
public void Ship()
{
if (status != OrderStatusEnum.Cancelled)
//ship
}
}
16. Rules:
1. Cannot cancel shipped orders
Because shipping costs money
That money would be lost if the customer cancelled
Because we refund the customers money
2. Don’t ship cancelled orders