using SinochemCloudClient.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 RefundPayment : State { protected override void Enter(StateEntry stateEntry, ref Transition transition) { base.Enter(stateEntry, ref transition); List epsTrxesNeedRefund = Main.GetNeedRefundEpsTrxes(); DebugLog(epsTrxesNeedRefund.Count + " eps trxes need refund"); foreach (EpsTransaction trx in epsTrxesNeedRefund) { RefundResponse response = Main.RefundEpsTrxInCloud(trx.Model); if (response != null && response.IsSuccessful()) { trx.UpdateTrxStatusToDb(EpsTrxStatus.PaymentRefunded); } } transition = new Transition(this, TransitionType.RefundPaymentDone); } 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; } } } } }