示例#1
0
        public async Task <ActionResult <Fee> > GetFee()
        {
            var feeList = _feesManager.GetAllFees();

            return(Ok(_mapper.Map <IEnumerable <FeeDTO> >(feeList)));
        }
示例#2
0
        public double GetFee()
        {
            var fee = _feesManager.GetAllFees();

            return(fee);
        }
示例#3
0
 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);
 }
示例#4
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);
        }