コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 public ConductorOrder()
 {
     state = ConductorOrderState.Uninitialized;
 }