Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        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));
            });
        }