public Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusResponse GetSkrillDepositStatusLoop( [FromUri] Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusReuest request) { Log.Info("Getting deposit status for Skrill"); var payload = new PaymentDto.Skrill.DepositStatus { TransactionId = request.TransactionId, Try = request.Try, MaximumTry = request.MaximumTry }; var response = _paymentApiProxy.GetSkrillDepositStatusLoop(CultureCode, _userContext.UserId, payload); return(new Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusResponse { Code = ResponseCode.Success, Message = response.Message, Completed = response.Completed, Succeeded = response.Succeeded, Payment = new PaymentModel { ReferenceNumber = response.TrasactionId, Amount = response.DepositAmount, Balance = response.CurrentBalance } }); }
public Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusResponse GetSkrillDepositStatus( [FromUri] Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusReuest request) { Log.Info("Getting deposit status for Skrill"); int i = 1; var payload = new PaymentDto.Skrill.DepositStatus { TransactionId = request.TransactionId, Try = i, MaximumTry = request.MaximumTry }; var response = _paymentApiProxy.GetSkrillDepositStatusLoop(CultureCode, _userContext.UserId, payload); while (!response.Completed && i < payload.MaximumTry) { Thread.Sleep(5000); i++; payload.Try = i; //response = await paymentApiProxy.GetResultAsync(CultureCode, userContext.UserId, param); response = _paymentApiProxy.GetSkrillDepositStatusLoop(CultureCode, _userContext.UserId, payload); if (response.Completed) { return(new Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusResponse { Code = ResponseCode.Success, Message = response.Message, Completed = response.Completed, Succeeded = response.Succeeded, Payment = new PaymentModel { ReferenceNumber = response.TrasactionId, Amount = response.DepositAmount, Balance = response.CurrentBalance } }); } } //if (!response.Completed) //{ // System.Timers.Timer aTimer = new System.Timers.Timer(5000); // int i = 2; // aTimer.Elapsed += (s, e) => // { // response = _paymentApiProxy.GetSkrillDepositStatusLoop(CultureCode, _userContext.UserId, payload); // if (response.Completed) // { // aTimer.Stop(); // aTimer.Dispose(); // } // i++; // if (i >= payload.MaximumTry) // { // aTimer.Stop(); // aTimer.Dispose(); // Log.Info("Getting deposit status for Skrill reach maximum try that's not completed"); // } // }; // aTimer.AutoReset = true; // aTimer.Enabled = true; //} return(new Dtos.Payment.PaymentDto.Skrill.GetSkrillDepositStatusResponse { Code = ResponseCode.Success, Message = response.Message, Completed = response.Completed, Succeeded = response.Succeeded, Payment = new PaymentModel { ReferenceNumber = response.TrasactionId, Amount = response.DepositAmount, Balance = response.CurrentBalance } }); }