Esempio n. 1
0
        public async Task GenerateLoanReport_Should_Return_Correct_Report(double loanAmount, int durationOfLoanMonthly)
        {
            // Arrange
            CalculationLoanInputData calculationData = new CalculationLoanInputData()
            {
                DurationOfLoanMonthly = durationOfLoanMonthly,
                LoanAmount            = loanAmount
            };

            // Act
            var result = await _loanCalculationController.GenerateLoanReport(
                calculationData);

            var okResult   = result as OkObjectResult;
            var loanReport = (LoanReport)okResult.Value;

            // Assert
            okResult.StatusCode.ShouldBe(200);
            loanReport.YearlyPayment.ShouldBe(636385.00000000012);
            loanReport.MonthlyPayment.ShouldBe(5303.2083333333339);
        }
Esempio n. 2
0
        public async Task <ActionResult> GenerateLoanReport([FromBody] CalculationLoanInputData calculationData)
        {
            double annualInterestRate = 0.05;

            try
            {
                var amountAdministrationFee = await _calculationService.GetAdministrationFee(calculationData.LoanAmount)
                                              .ConfigureAwait(false);

                var report = await _calculationService.GenerateReport(
                    calculationData.LoanAmount,
                    annualInterestRate,
                    calculationData.DurationOfLoanMonthly,
                    amountAdministrationFee);

                return(Ok(report));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(BadRequest("problem with generate report"));
            }
        }