public void Ship(Order order) { throw new NotImplementedException("You can't ship a canceled order! "); }
public void Cancel(Order order) { throw new NotImplementedException("this order is already cancelled!"); }
public bool CanShip(Order order) { return false; }
public bool CanCancel(Order order) { return false; }
public void Ship(Order order) { order.Change(new ShippedOrderState()); }
public bool CanShip(Order order) { return true; }
public void Cancel(Order order) { order.Change(new CancelOrderState()); }
public bool CanCancel(Order order) { return true; }