public override void Submit(ref OrderState state) { //An order must have at least one order item if (!_orderHeader.OrderItems.Any()) { throw new InvalidOrderStateException("A new order must have at least one item before it can be submitted."); } state = new OrderPending(_orderHeader); }
private void setState(int stateId) { switch (stateId) { case 1: _state = new OrderNew(this); break; case 2: _state = new OrderPending(this); break; case 3: _state = new OrderRejected(this); break; case 4: _state = new OrderComplete(this); break; default: throw new InvalidOrderStateException("Invalid StateId detected"); } }
public override void Submit(ref OrderState state) { throw new InvalidOrderStateException("A pending order cannot be submitted again"); }
public override void Reject(ref OrderState state) { state = new OrderRejected(_orderHeader); }
public override void Complete(ref OrderState state) { state = new OrderComplete(_orderHeader); }
public override void Reject(ref OrderState state) { throw new InvalidOrderStateException("A new order must be submitted (pending) before it can be rejected"); }