12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using SinochemPosClient.Models;
- 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;
- namespace SinochemInternetPlusApp.EpsTrxCleanup.States
- {
- class ResendPosNotify : State<EpsTrxCleanupManager>
- {
- protected override void Enter(StateEntry stateEntry, ref Transition transition)
- {
- base.Enter(stateEntry, ref transition);
- // resend the notify for the trxes that are not yet successfully notified to pos
- var neeResendPosNotifyEpsTrxes = Main.GetNeedResendPosNotifyEpsTrxes();
- foreach (var epsTrx in neeResendPosNotifyEpsTrxes)
- {
- TrxNotificationResponse response = Main.NotifySuccessfulTrxToPos(epsTrx.Model);
- if (response != null && response.IsSuccessful())
- {
- epsTrx.UpdateNotifyPosFlagToDb(NotifyPosFlag.NotifyOk);
- }
- }
- transition = new Transition(this, TransitionType.ResendPosNotifyDone);
- }
- protected override void HandleEvent(StateEngineEvent stateEngineEvent, ref Transition transition)
- {
- base.HandleEvent(stateEngineEvent, ref transition);
- if (stateEngineEvent.Type is BasicTransitionType)
- {
- switch ((BasicTransitionType)stateEngineEvent.Type)
- {
- case BasicTransitionType.Error:
- transition = new Transition(this, BasicTransitionType.Error);
- stateEngineEvent.Handled = true;
- break;
- }
- }
- }
- }
- }
|