private double CalculatePotentialReturnOnInvestment(Loan loan, LoanPlanViewModel viewModel) { var dailyProfit = viewModel.InvestmentSum * 12 * (1 + viewModel.InvestmentInterest / 100) / 365; var remainingDays = (loan.Term.Date - DateTime.Now).TotalDays; return((double)(dailyProfit * remainingDays)); }
private double CalculateLoanWithSurplus(Loan loan, LoanPlanViewModel viewModel) { var remainingSum = loan.Sum - loan.ReturnedSum; var remainingDays = (loan.Term.Date - DateTime.Now).TotalDays; var dailyCharge = remainingSum / remainingDays; var dailySurplus = viewModel.InvestmentSum / 31; return((double)(remainingSum / (dailyCharge + dailySurplus))); }
private string Validate(LoanPlanViewModel viewModel) { if (!viewModel.InvestmentSum.HasValue || viewModel.InvestmentSum <= 0) { return("Būtina įvesti investicijos sumą"); } if (!viewModel.InvestmentInterest.HasValue || viewModel.InvestmentInterest <= 0) { return("Būtina įvesti investicijos palūkanas"); } return(string.Empty); }
public IActionResult SubmitPlanData(LoanPlanViewModel viewModel) { var validation = Validate(viewModel); if (!string.IsNullOrEmpty(validation)) { TempData["Error"] = validation; ViewBag.Loans = GenerateLoanSelectList(); return(View("~/Views/LoanPlanner/LoanPlanPage.cshtml", viewModel)); } var loan = Find(viewModel.SelectedLoanId); var daysRemainingWithSurplus = CalculateLoanWithSurplus(loan, viewModel); var potentialReturnOnInvestment = CalculatePotentialReturnOnInvestment(loan, viewModel); var daysRemainingWithoutSurplus = CalculateLoanWithoutSurplus(loan); ViewBag.FinalAnswer = CompareStrategies(daysRemainingWithSurplus, potentialReturnOnInvestment, daysRemainingWithoutSurplus, loan); ViewBag.Loans = GenerateLoanSelectList(); return(View("~/Views/LoanPlanner/LoanPlanPage.cshtml", viewModel)); }