Example #1
0
            public static ContexException TriggerError(string trigger, ShippingState2 contextState)
            {
                string _msg = String.Format
                                  ("ShippingSubstateMachine error: the {0} trigger is not allowed in the current state {1}",
                                  trigger,
                                  contextState
                                  );

                return(new ContexException(_msg));
            }
Example #2
0
        private ShippingState2 GetDefaultValue(Shipping shipping)
        {
            ShippingState2 _ret = default(ShippingState2);

            switch (shipping.ShippingState.GetValueOrDefault(ShippingState.Creation))
            {
            case ShippingState.Cancelation:
                _ret = ShippingState2.Cancelation;
                break;

            case ShippingState.Canceled:
                _ret = ShippingState2.Canceled;
                break;

            case ShippingState.Completed:
                _ret = ShippingState2.Left;
                break;

            case ShippingState.Confirmed:
                if (shipping.TruckAwaiting.Value)
                {
                    _ret = ShippingState2.Waiting;
                }
                else
                {
                    _ret = ShippingState2.Confirmed;
                }
                break;

            case ShippingState.Creation:
                _ret = ShippingState2.Creation;
                break;

            case ShippingState.Delayed:
                if (shipping.TruckAwaiting.Value)
                {
                    _ret = ShippingState2.Waiting;
                }
                else
                {
                    _ret = ShippingState2.Delayed;
                }
                break;

            case ShippingState.WaitingForCarrierData:
                _ret = ShippingState2.LackOfData;
                break;

            case ShippingState.WaitingForConfirmation:
                _ret = ShippingState2.LackOfData;
                break;

            case ShippingState.Underway:
                if (shipping.WarehouseEndTime > DateTime.Now)
                {
                    _ret = ShippingState2.Completed;
                }
                else
                {
                    _ret = ShippingState2.Started;
                }
                break;
            }
            return(_ret);
        }
Example #3
0
 protected virtual void Transition(ShippingState2 newState)
 {
     Parent.m_Parent.ShippingState2 = newState;
 }