Beispiel #1
0
        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
                }
            });
        }
Beispiel #2
0
        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
                }
            });
        }