public async Task <ActionResult <Fee> > GetFee() { var feeList = _feesManager.GetAllFees(); return(Ok(_mapper.Map <IEnumerable <FeeDTO> >(feeList))); }
public double GetFee() { var fee = _feesManager.GetAllFees(); return(fee); }
public override double ApplyFee(BaseFee o, double amount) { if (o is Fee) { FeesManager feeCrypto = new FeesManager(_context); var currentFeeCrypto = Convert.ToDouble((int)Math.Round((double)(Convert.ToDouble(feeCrypto.GetAllFees()) / 100) * amount)); return(currentFeeCrypto); } else if (o is FlatRateFee) { FeesManager flatRateFee = new FeesManager(_context); var flatRate = flatRateFee.GetAllFlatRateFees(); return(flatRate); } return(0); }
public override bool DoTransfer(Transfer t) { var cryptoCurrencyName = _context.CryptoCurrency.Where(i => i.CryptoCurrencyAbbreviation == t.From).Select(i => i.CryptoCurrencyName).FirstOrDefault(); var fiatCurrencyName = _context.Currency.Where(i => i.CurrencyAbbreviation == t.To).Select(i => i.CurrencyName).FirstOrDefault(); if (fiatCurrencyName == null) { fiatCurrencyName = _context.CryptoCurrency.Where(i => i.CryptoCurrencyAbbreviation == t.To).Select(i => i.CryptoCurrencyName).FirstOrDefault(); GetConversionRateAsync getConversionRateAsyncCrypto = new GetConversionRateAsync(); double conversionRateCrypto = getConversionRateAsyncCrypto.GetConversionRate(t.To, t.From); FeesManager feeCrypto = new FeesManager(_context); var currentFeeCrypto = Convert.ToDouble((int)Math.Round((double)(Convert.ToDouble(feeCrypto.GetAllFees()) / 100) * t.Amount)); var cryptoAccountFrom = _context.CryptoAccount.Where(i => i.CryptoCurrencyName == cryptoCurrencyName).FirstOrDefault(); var cryptoAccountTo = _context.CryptoAccount.Where(i => i.CryptoCurrencyName == fiatCurrencyName).FirstOrDefault(); cryptoAccountFrom.Sold -= (t.Amount + currentFeeCrypto); if (cryptoAccountFrom.Sold < 0) { return(false); } cryptoAccountTo.Sold = t.Amount * Convert.ToDouble(conversionRateCrypto); _context.SaveChanges(); string type = "Crypto Transaction"; CryptoManager transaction = new CryptoManager(_context, _mapper); transaction.AddCryptoTransaction(t.From, t.To, t.Amount, type); return(true); } GetConversionRateAsync getConversionRateAsync = new GetConversionRateAsync(); var conversionRate = getConversionRateAsync.GetConversionRate(t.From, t.To); FeesManager fee = new FeesManager(_context); var currentFee = Convert.ToDouble((int)Math.Round((double)(Convert.ToDouble(fee.GetAllFees()) / 100) * t.Amount)); var acountTo = _context.BankAccount.Where(i => i.CurrencyName == fiatCurrencyName).FirstOrDefault(); var acountFrom = _context.CryptoAccount.Where(i => i.CryptoCurrencyName == cryptoCurrencyName).FirstOrDefault(); acountFrom.Sold -= (t.Amount + currentFee); if (acountFrom.Sold < 0) { return(false); } acountTo.Sold = t.Amount * Convert.ToDouble(conversionRate); _context.SaveChanges(); return(true); }