namespace ReserveManagementSystemLib.Models { public class CalculationConfig { public readonly Loan _loanData; public CalculationConfig(Loan loanData) { _loanData = loanData; } public Loan LoanData() { return _loanData; } public decimal BuydownRateDifference() { return _loanData.BuyRate - _loanData.ContractRate; } public decimal BuyFinanceCharge { get; set; } public decimal ContractFinanceCharge { get; set; } public int DaysToFirstPmt() { return (_loanData.FirstPmtDate - _loanData.LoanDate).Days - 30 > 0 ? (_loanData.FirstPmtDate - _loanData.LoanDate).Days - 30 : 0; } public decimal ReserveDiscount() { return _loanData.LoanType?.ReserveDiscount ?? 25M; } public decimal FlatFeePercent() { return _loanData.LoanType?.FlatFeePercent ?? 1M; } public decimal NoReserveThreshold() { return _loanData.LoanType?.NoReserveThreshold ?? 0.25M; } public decimal StdRate() { return (_loanData.ContractRate - _loanData.BuyRate); } } }