public void Rate_Date_Properties_Contain_Data() { var rate1 = Fixer.Rate(Symbols.GBP, Symbols.EUR, new DateTime(2016, 10, 19)); var rate2 = Fixer.Rate(Symbols.GBP, Symbols.EUR, new DateTime(2016, 10, 18)); Assert.AreNotEqual(rate1.Rate, rate2.Rate); }
public void ApproveLoanRequest(OrderLoan orderLoan) { Account buyerAccount = orderLoan.Account; Account sellerAccount = orderLoan.Loan.Account; double orderCost = (double)orderLoan.Commission; double orderAmount = (double)orderLoan.Amount; double orderFee = (double)orderLoan.MonthlyFee; if (buyerAccount.Currency.IsoCode != sellerAccount.Currency.IsoCode) { ExchangeRate rateFromTo = Fixer .Rate(sellerAccount.Currency.IsoCode, buyerAccount.Currency.IsoCode); orderCost = rateFromTo.Convert(orderCost); orderAmount = rateFromTo.Convert(orderAmount); orderFee = rateFromTo.Convert(orderFee); } buyerAccount.Balance -= (decimal)orderCost; buyerAccount.Balance += (decimal)orderAmount; buyerAccount.MonthlyOutcome += (decimal)orderFee; sellerAccount.Balance += orderLoan.Commission; sellerAccount.Balance -= orderLoan.Amount; sellerAccount.MonthlyIncome += orderLoan.MonthlyFee; //TODO: every mounts task transfer orderLoan.CompletedOn = DateTime.UtcNow; orderLoan.Status = OrderStatus.Approved; this.context.SaveChanges(); }
public void ApproveSaveRequest(OrderSave orderedSave) { Account depositorAccount = orderedSave.Account; Account sellerAccount = orderedSave.Save.Account; double depositAmount = (double)orderedSave.Amount; double monthlyIncome = (double)orderedSave.MonthlyFee; if (depositorAccount.Currency.IsoCode != sellerAccount.Currency.IsoCode) { ExchangeRate rateFromTo = Fixer .Rate(sellerAccount.Currency.IsoCode, depositorAccount.Currency.IsoCode); depositAmount = rateFromTo.Convert(depositAmount); monthlyIncome = rateFromTo.Convert(monthlyIncome); } depositorAccount.Balance -= (decimal)depositAmount; depositorAccount.MonthlyIncome += (decimal)monthlyIncome; //TODO every mounts task transfer sellerAccount.Balance += orderedSave.Amount; sellerAccount.MonthlyOutcome += orderedSave.MonthlyFee; orderedSave.CompletedOn = DateTime.UtcNow; orderedSave.Status = OrderStatus.Approved; this.context.SaveChanges(); }
public void DoTransfer(TransferBankCloudInputModel model, Account grantAccount, Account receiverAccount) { grantAccount.Balance -= model.Amount; if (receiverAccount.CurrencyId != grantAccount.CurrencyId) { ExchangeRate rateFromTo = Fixer .Rate(grantAccount.Currency.IsoCode, receiverAccount.Currency.IsoCode); var convertAmmount = rateFromTo.Convert((double)model.Amount); receiverAccount.Balance += (decimal)convertAmmount; model.ConvertedAmount = (decimal)convertAmmount; } else { receiverAccount.Balance += model.Amount; model.ConvertedAmount = model.Amount; } Transfer transfer = this.mapper.Map <Transfer>(model); transfer.ForeignAccountId = receiverAccount.Id; transfer.Date = DateTime.UtcNow; transfer.Completed = DateTime.UtcNow; transfer.Type = TransferType.BankCloud; transfer.Status = TransferStatus.Approved; transfer.BalanceType = BalanceType.Negative; this.context.Transfers.Add(transfer); this.context.SaveChanges(); }
public IActionResult ChargeBankCloud(string iban) { var chargeData = TempData.Get <AccountsChargeInputModel>("charge"); var bankCloudCharge = this.mapper.Map <ChargeBankCloudInputModel>(chargeData); var grantAccount = this.accountsService.GetAccountByIban(iban); if (grantAccount == null || bankCloudCharge.Id == grantAccount.Id) { this.TempData["error"] = GlobalConstants.MISSING_BANKCLOUD_ACCOUNT; return(this.RedirectToAction("Charge", chargeData)); } Transfer transfer = this.mapper.Map <Transfer>(bankCloudCharge); if (grantAccount.Currency.IsoCode != bankCloudCharge.IsoCode) { ExchangeRate rateFromTo = Fixer .Rate(bankCloudCharge.IsoCode, grantAccount.Currency.IsoCode); var convertedAmount = rateFromTo.Convert((double)bankCloudCharge.Amount); transfer.ConvertedAmount = (decimal)convertedAmount; } else { transfer.ConvertedAmount = bankCloudCharge.Amount; } transfer.ForeignAccountId = grantAccount.Id; transfer.BalanceType = BalanceType.Positive; this.transferService.AddBankCloudTransfer(transfer); return(this.Redirect("/Accounts/Index")); }
public Transaction Exchange(Transaction trans) { ExchangeRate excRate = Fixer.Rate(trans.Source_Currency, trans.Destination_Currency); trans.FX_Rate = excRate.Rate.ToString("0.00"); trans.Destination_Amount = Fixer.Convert(trans.Source_Currency, trans.Destination_Currency, Double.Parse(trans.Source_Amount)).ToString("0.00"); return(trans); }
public void Rate_Properties_Contain_Data() { var rate = Fixer.Rate(Symbols.GBP, Symbols.EUR); Assert.AreNotEqual(rate.From, ""); Assert.AreNotEqual(rate.To, ""); Assert.AreNotEqual(rate.Rate, 0); }
public void Rates_For_Previous_Dates_Contain_Different_Data() { var rate1 = Fixer.Rate(Symbols.GBP, Symbols.EUR, new DateTime(2016, 10, 19)); var rate2 = Fixer.Rate(Symbols.GBP, Symbols.EUR, new DateTime(2016, 10, 18)); Assert.AreNotEqual(rate1.Rate, rate2.Rate); Assert.AreNotEqual(rate1.Date, rate2.Date); }
public void Rate_Properties_Contain_Data() { var rate = Fixer.Rate(testApiKey, Symbols.GBP, Symbols.EUR); Assert.AreNotEqual(rate.From, ""); Assert.AreNotEqual(rate.To, ""); Assert.AreNotEqual(rate.Rate, 0); Assert.AreNotEqual(rate.Date, default(DateTime)); }
public void Conversion_From_Rate() { var rate = Fixer.Rate(Symbols.EUR, Symbols.GBP); Assert.AreNotEqual(rate.Convert(1), 0); Assert.AreNotEqual(rate.Convert(100), 0); Assert.AreNotEqual(rate.Convert(1000), 0); Assert.AreNotEqual(rate.Convert(10000), 0); Assert.AreNotEqual(rate.Convert(100000), 0); Assert.AreNotEqual(rate.Convert(10000000), 0); Assert.AreNotEqual(rate.Convert(100000000), 0); }
protected override void Execute(CodeActivityContext context) { var aPIKey = APIKey.Get(context); Fixer.SetApiKey(aPIKey); var inputCurrency = InputCurrency.Get(context); var outputCurrency = OutputCurrency.Get(context); var rate = Fixer.Rate(inputCurrency, outputCurrency); double dblrate = rate.Convert(1); Rate.Set(context, dblrate); }
public void Rate_With_Strings_Returns_Value() { var rate = Fixer.Rate("USD", "GBP"); Assert.AreNotEqual(rate, null); }
public void Rate_With_Symbol_Returns_Value() { var rate = Fixer.Rate(Symbols.GBP, Symbols.DKK); Assert.AreNotEqual(rate, null); }
public async Task <decimal> GetExchangeRateAsync(string fromCurrency, string toCurrency) { var exchangeRate = await Task.Run(() => Fixer.Rate(fromCurrency, toCurrency)); return((decimal)exchangeRate.Rate); }