1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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<EpsTrxCleanupManager>
- {
- protected override void Enter(StateEntry stateEntry, ref Transition transition)
- {
- base.Enter(stateEntry, ref transition);
- List<EpsTransaction> 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;
- }
- }
- }
- }
- }
|