Beispiel #1
0
        public async Task <int> GetCryptoCurrencyAmount(string transactionId)
        {
            var payInObject = await _mangoPayApi.PayIns.Get(transactionId);

            var  cryptoCurrencyQuantity = 0;
            long transactionTotalAmount = 0;
            var  contonmentAmount       = 0;
            var  mangoPayFeesAmount     = 0;

            if (payInObject.Status == TransactionStatus.SUCCEEDED)
            {
                transactionTotalAmount = payInObject.DebitedFunds.Amount;

                contonmentAmount = CalculateContonmentTotalAmount(transactionTotalAmount) * 100;

                var contonmentTransfertObject = new MangoPayTransfertObject
                {
                    DebitedWalletID  = payInObject.CreditedWalletId,
                    CreditedWalletId = _stirblockCantonmentWalletId,
                    TotalAmount      = contonmentAmount,
                    FeesAmount       = 0
                };

                mangoPayFeesAmount = Convert.ToInt32(transactionTotalAmount) - contonmentAmount;

                var commissionTransfertObject = new MangoPayTransfertObject
                {
                    DebitedWalletID  = payInObject.CreditedWalletId,
                    CreditedWalletId = _stirblockCommisionWalletId,
                    TotalAmount      = mangoPayFeesAmount,
                    FeesAmount       = 0
                };

                var transfertToContonmentDone = await TransfertMoneyToCantonmentWallet(contonmentTransfertObject.DebitedWalletID, contonmentTransfertObject.CreditedWalletId, contonmentTransfertObject.TotalAmount, contonmentTransfertObject.FeesAmount);

                var transfertToCommissionDone = await TransfertMangoPayFeesToCommissionWallet(commissionTransfertObject.DebitedWalletID, commissionTransfertObject.CreditedWalletId, commissionTransfertObject.TotalAmount, commissionTransfertObject.FeesAmount);

                if (transfertToContonmentDone && transfertToCommissionDone)
                {
                    cryptoCurrencyQuantity = CalculateCryptoCurrency(transactionTotalAmount);
                    return(cryptoCurrencyQuantity);
                }
                else
                {
                    return(0);
                }
            }
            else
            {
                return(0);
            }
        }
Beispiel #2
0
        public async Task <bool> RefundUsers(string projectOwnerWalletId, long totalAmountToRefund)
        {
            var trasfertObject = new MangoPayTransfertObject
            {
                DebitedWalletID  = projectOwnerWalletId,
                CreditedWalletId = _stirblockCantonmentWalletId,
                TotalAmount      = totalAmountToRefund * 100,
                FeesAmount       = 0
            };

            var tranfertObject = await CreateTransfertMoney(trasfertObject.DebitedWalletID, trasfertObject.CreditedWalletId, trasfertObject.TotalAmount, trasfertObject.FeesAmount);

            return(tranfertObject.Status == TransactionStatus.SUCCEEDED ? true : false);
        }
Beispiel #3
0
        public async Task <bool> GetInvestmentAmount(string transactionId, string ProjecOwnertWalletID)
        {
            var payInObject = await _mangoPayApi.PayIns.Get(transactionId);

            long transactionTotalAmount = 0;
            var  projectOwnerAmount     = 0;
            var  mangoPayFeesAmount     = 0;

            if (payInObject.Status == TransactionStatus.SUCCEEDED)
            {
                transactionTotalAmount = payInObject.DebitedFunds.Amount;

                projectOwnerAmount = CalculateProjectOwnerTotalAmount(transactionTotalAmount) * 100;
                var projectwnerTransfertObject = new MangoPayTransfertObject
                {
                    DebitedWalletID  = payInObject.CreditedWalletId,
                    CreditedWalletId = ProjecOwnertWalletID,
                    TotalAmount      = projectOwnerAmount,
                    FeesAmount       = 0
                };

                mangoPayFeesAmount = Convert.ToInt32(transactionTotalAmount) - projectOwnerAmount;

                var commissionTransfertObject = new MangoPayTransfertObject
                {
                    DebitedWalletID  = payInObject.CreditedWalletId,
                    CreditedWalletId = _stirblockCommisionWalletId,
                    TotalAmount      = mangoPayFeesAmount,
                    FeesAmount       = 0
                };

                var transfertToProjectOwnerDone = await TransfertMoneyToCantonmentWallet(projectwnerTransfertObject.DebitedWalletID, projectwnerTransfertObject.CreditedWalletId, projectwnerTransfertObject.TotalAmount, projectwnerTransfertObject.FeesAmount);

                var transfertToCommissionDone = await TransfertMangoPayFeesToCommissionWallet(commissionTransfertObject.DebitedWalletID, commissionTransfertObject.CreditedWalletId, commissionTransfertObject.TotalAmount, commissionTransfertObject.FeesAmount);

                if (transfertToProjectOwnerDone && transfertToCommissionDone)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }