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)); }
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); }
protected virtual void Transition(ShippingState2 newState) { Parent.m_Parent.ShippingState2 = newState; }