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 { 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; } } } } }