private void CalculateButton_Click(object sender, EventArgs e) { try { MortCalc = new MortgageCalculator(); MortCalc.MyMortgageAmount = double.Parse(MortAmountBox.Text); if (MortCalc.MyMortgageAmount > 5000000 || MortCalc.MyMortgageAmount < 10000) { MessageBox.Show("Mortgage Amount cannot be greater than 5 million or less than 10,000"); return; } MortCalc.MyInterestRate = double.Parse(InterestRateAmountBox.Text); if (MortCalc.MyInterestRate > 1) { MessageBox.Show("Interest Rate cannot be greater than 100%"); return; } MortCalc.MyMortgagePeriod = double.Parse(MortPeriodBox.Text); if (MortCalc.MyMortgagePeriod > 65 || MortCalc.MyMortgagePeriod < 1) { MessageBox.Show("Mortgage Period cannot be greater than 65 years or less than 1 year."); return; } double result = MortCalc.MortgagePaymentCalculator(MortCalc.MyMortgageAmount, MortCalc.MyInterestRate, MortCalc.MyMortgagePeriod); MonthMortPaymentBox.Text = result.ToString("c"); CalcList.Add(MortCalc); } catch (Exception) { MessageBox.Show("Invalid Entry"); } }
public void TestCorrectMonthlyPaymentCalculation() { MortgageCalculator calc = new MortgageCalculator(); calc.MyMortgageAmount = 100000; calc.MyInterestRate = 0.0392; calc.MyMortgagePeriod = 30; double expectedResult = 472.8147315508823; Assert.AreEqual(expectedResult, calc.MortgagePaymentCalculator(calc.MyMortgageAmount, calc.MyInterestRate, calc.MyMortgagePeriod)); }
public MainWindowViewModel(RealFileProvider realFileProvider) { History = new ObservableCollection <MortgageCalculator>(); Calculator = new MortgageCalculator(); Calculator.MyMortgageAmount = 350000; Calculator.MyInterestRate = 0.04; Calculator.MyMortgagePeriod = 30; this.fileProvider = realFileProvider; CalculateCommand = new DelegateCommand(() => { Calculator.MortgagePaymentCalculator(); History.Add(Calculator); ExportToExcel.RaiseCanExecuteChanged(); Calculator = Calculator.Clone() as MortgageCalculator; RaisePropertyChanged(nameof(Calculator)); }); }