1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Wayne.Lib.StateEngine;
- using Wayne.Lib.StateEngine.Generic;
- using WayneChina_IcCardReader_SinoChem.MessageEntity.Incoming;
- namespace SinochemInternetPlusApp.States.ICCardMode
- {
- internal class WaitForFueling : TimeoutState<FuelingPoint>
- {
- protected override void Enter(StateEntry stateEntry, ref Transition transition)
- {
- base.Enter(stateEntry, ref transition);
- Main.CurrentEpsTrx.UpdateTrxStatusToDb(EpsTrxStatus.BeforeFueling);
- }
- protected override void HandleNonTimeoutEvent(StateEngineEvent stateEngineEvent, ref Transition transition)
- {
- if (stateEngineEvent.Type.Equals(EventType.ReaderStateChanged))
- {
- GenericEvent<CardReaderStateEventArgs> readerEvent = stateEngineEvent as GenericEvent<CardReaderStateEventArgs>;
- if (readerEvent != null && readerEvent.EventArgs != null)
- {
- if (readerEvent.EventArgs.CardReaderState.State == CardReaderState.Idle)
- {
- DebugLog("What? Card ejected when waiting for nozzole lift? Fuck, man!");
- readerEvent.Handled = true;
- transition = new Transition(this, TransitionType.Abort);
- }
- }
- }
- else if (stateEngineEvent.Type is EventType)
- {
- switch ((EventType)stateEngineEvent.Type)
- {
- case EventType.NozzleLifted:
- var nlEvent = stateEngineEvent as GenericEvent<NozzleLiftedEventArgs>;
- Main.CurrentNozzleId = nlEvent.EventArgs.NozzleId;
- //Update the nozzle id for trx when it's known
- Main.CurrentEpsTrx.Model.jihao = Main.CurrentNozzleId;
- Main.CurrentEpsTrx.SaveToDb();
- transition = new Transition(this, TransitionType.NozzleLifted);
- stateEngineEvent.Handled = true;
- break;
- }
- }
- }
- protected override void Timeout(ref Transition transition)
- {
- transition = new Transition(this, TransitionType.Timeout);
- }
- protected override int TimeoutInterval =>
- TimeoutValues.GetValueInMilliSec(TimeoutValues.FuelingPoint.Shared_WaitForFueling, 30 * 60);
- }
- }
|