12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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 ConfirmPaymentResult : State<EpsTrxCleanupManager>
- {
- protected override void Enter(StateEntry stateEntry, ref Transition transition)
- {
- base.Enter(stateEntry, ref transition);
- var needConfirmEpsTrxes = Main.GetNeedConfirmEpsTrxes();
- foreach (EpsTransaction trx in needConfirmEpsTrxes)
- {
- TrxStatusInquiryResponse response = Main.InquiryCloudTrxStatus(trx.Model);
- if (response != null)
- {
- if (response.IsSuccessful())
- {
- trx.UpdateTrxStatusToDb(EpsTrxStatus.PaymentOkButNeedRefund);
- }
- else if(!response.IsStatusUnknown())
- {
- trx.UpdateTrxStatusToDb(EpsTrxStatus.PaymentFailed);
- }
- }
- }
- transition = new Transition(this, TransitionType.ConfirmPaymentDone);
- }
- 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;
- }
- }
- }
- }
- }
|