Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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"));
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
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);
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
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);
        }
Exemplo n.º 12
0
        public void Rate_With_Strings_Returns_Value()
        {
            var rate = Fixer.Rate("USD", "GBP");

            Assert.AreNotEqual(rate, null);
        }
Exemplo n.º 13
0
        public void Rate_With_Symbol_Returns_Value()
        {
            var rate = Fixer.Rate(Symbols.GBP, Symbols.DKK);

            Assert.AreNotEqual(rate, null);
        }
Exemplo n.º 14
0
        public async Task <decimal> GetExchangeRateAsync(string fromCurrency, string toCurrency)
        {
            var exchangeRate = await Task.Run(() => Fixer.Rate(fromCurrency, toCurrency));

            return((decimal)exchangeRate.Rate);
        }