Example #1
0
        public async Task <IncomeTransactionTableModel> CreateIncomeTransactionAsync(
            IncomeTransactionTableModel incomeTransaction)
        {
            try
            {
                var p = new DynamicParameters();
                p.Add("currencyAcronim", incomeTransaction.CurrencyAcronim);
                p.Add("transactionId", incomeTransaction.TransactionId);
                p.Add("amount", incomeTransaction.Amount);
                p.Add("platformCommission", incomeTransaction.PlatformCommission);
                p.Add("transactionFee", incomeTransaction.TransactionFee);
                p.Add("toAddress", incomeTransaction.ToAddress);
                p.Add("date", incomeTransaction.Date);
                p.Add("userId", incomeTransaction.UserId);
                p.Add("incomeWalletId", incomeTransaction.WalletId);
                p.Add("new_identity", dbType: DbType.Int32, direction: ParameterDirection.Output);

                await _db.QueryAsync <int>("CreateIncomeTransaction", p, commandType : CommandType.StoredProcedure);

                incomeTransaction.Id = p.Get <int>("new_identity");

                return(incomeTransaction);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public async Task <BalanceProviderModel> Income(WalletTableModel walletTableModel,
                                                        IncomeTransactionTableModel incomeTransaction)
        {
            var currency = await _walletsRepository.GetCurrencyByAcronimAsync(incomeTransaction.CurrencyAcronim);

            var balanceProviderModel = new BalanceProviderModel();

            balanceProviderModel.PercentCommission    = currency.PercentCommissionForIncomeTransaction;
            balanceProviderModel.StartBalanceReceiver = walletTableModel.Value;

            if (currency.PercentCommissionForIncomeTransaction != null)
            {
                balanceProviderModel.Commission = incomeTransaction.Amount * currency.PercentCommissionForIncomeTransaction.Value;

                balanceProviderModel.ResultBalanceReceiver = walletTableModel.Value + (incomeTransaction.Amount - balanceProviderModel.Commission.Value);
            }
            else
            {
                balanceProviderModel.ResultBalanceReceiver = walletTableModel.Value + incomeTransaction.Amount;
            }

            return(balanceProviderModel);
        }