Example #1
0
        public void CalculateMonthlyPayment(double amount, int duration, double monthlyPayment)
        {
            var serviceModel = new LoanCalculationServiceModel
            {
                Amount   = amount,
                Duration = duration
            };

            var result = loanCalculationService.CalculateLoan(serviceModel);

            Assert.AreEqual(Math.Round(monthlyPayment), Math.Round(result.MonthlyPayment));
        }
Example #2
0
        public void CalculateInterestRate(double amount, int duration, double interestsRate)
        {
            var serviceModel = new LoanCalculationServiceModel
            {
                Amount   = amount,
                Duration = duration
            };

            var result = loanCalculationService.CalculateLoan(serviceModel);

            Assert.AreEqual(Math.Round(interestsRate), Math.Round(result.InterestRate));
        }
Example #3
0
        public void CalculateAdministrationFee(double amount, int duration, double administrationFee)
        {
            var serviceModel = new LoanCalculationServiceModel
            {
                Amount   = amount,
                Duration = duration
            };

            var result = loanCalculationService.CalculateLoan(serviceModel);

            Assert.AreEqual(Math.Round(administrationFee), Math.Round(result.AdministrationFee));
        }
        public LoanResultServiceModel CalculateLoan(LoanCalculationServiceModel serviceModel)
        {
            var result = new LoanResultServiceModel
            {
                DurationOfLoan    = serviceModel.Duration,
                LoanAmount        = serviceModel.Amount,
                InterestRate      = CalculateInterestRate(serviceModel.Amount, serviceModel.Duration),
                AdministrationFee = CalculateAdministrationFee(serviceModel.Amount),
            };

            result.TotalLoanAmount = result.InterestRate + result.LoanAmount + result.AdministrationFee;
            result.MonthlyPayment  = CalculateMonthlyPayment(result.TotalLoanAmount, result.DurationOfLoan);

            return(result);
        }
Example #5
0
        public void Run(Parameters options)
        {
            var writeServiceModel = new LoanCalculationServiceModel()
            {
                Amount   = options.Amount,
                Duration = options.Duration,
            };

            var result = LoanCalculationService.CalculateLoan(writeServiceModel);
            var report = LoanReportService.GenerateReport(result);

            Console.WriteLine(report);

            Console.ReadLine();
        }