public bool ResumeFulfill() { switch (state) { case ConductorOrderState.Uninitialized: if (InitializeFulfill()) { StartFulfill(); state = ConductorOrderState.Started; return(true); } OnDone(ConductorOrderState.Done); return(false); case ConductorOrderState.Initialized: StartFulfill(); state = ConductorOrderState.Started; return(true); case ConductorOrderState.Started: return(true); case ConductorOrderState.Done: return(false); } throw new UnaccountedBranchException("state", state); }
private void OnDone(ConductorOrderState s) { switch (s) { case ConductorOrderState.Uninitialized: CancelFulfill(); DoneFulfill(); state = ConductorOrderState.Uninitialized; return; case ConductorOrderState.Done: FinishFulfill(); DoneFulfill(); state = ConductorOrderState.Done; return; } throw new UnaccountedBranchException("s", s); }
public void SuspendFulfill() { switch (state) { case ConductorOrderState.Uninitialized: return; case ConductorOrderState.Initialized: return; case ConductorOrderState.Started: PauseFulfill(); state = ConductorOrderState.Initialized; return; case ConductorOrderState.Done: return; } throw new UnaccountedBranchException("state", state); }
public void Prime() { switch (state) { case ConductorOrderState.Uninitialized: state = ConductorOrderState.Done; return; case ConductorOrderState.Initialized: OnDone(ConductorOrderState.Done); return; case ConductorOrderState.Started: OnDone(ConductorOrderState.Done); return; case ConductorOrderState.Done: return; } throw new UnaccountedBranchException("state", state); }
public ConductorOrder() { state = ConductorOrderState.Uninitialized; }