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); }