Example #1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);

            // Creating new tally.
            IP02_Boelo_Tally CheckTally = new IP02_Boelo_Tally();

            //CSV file name
            string fileName;

            // Creating and running checkbook input form.
            IP02_Boelo_Checkbook checkBook = new IP02_Boelo_Checkbook();

            Application.Run(checkBook);

            //creates and sets the balance from the form
            double balance = checkBook.getBalance();

            // create new engine
            var csvRead = new IP02_Boelo_RunEngine();

            //set fileName
            fileName = checkBook.getCheckbook();
            if (checkBook.isExisting())
            {
                balance = csvRead.readBalance(fileName);
                CheckTally.setNumChecks(csvRead.readCheckNum(fileName));
            }
            else
            {
                csvRead.createNewFile(fileName, balance);
            }

            //DEBUG
            //test CSV
            //var csvTest = new RunEngine();
            //csvTest.createNewFile(fileName);
            //csvTest.test();

            //create new CSV
            //CsvEngine.DataTableToCsv(csvRead, fileName);

            //TODO CheckSum.newSum(initialAmount);

            // Create a while flag for entering more than one check.
            bool Rep = true;

            do
            {
                IP02_TransactionsIO_Boelo tra;
                IP02_Boelo_InputForm      InForm = new IP02_Boelo_InputForm();
                InForm.showForm();


                // Code doesn't advance until the user successfully enters a check.
                // So beyond this point, assume a check has been entered successfully.

                // Debug for input form
                //MessageBox.Show("Name: " + InForm.getName() + "\nAmount: " + InForm.getAmount() + "\nMemo: " + InForm.getMemo() );

                // Get the date for the transaction
                String day   = DateTime.Now.Day.ToString();
                String month = DateTime.Now.Month.ToString();
                String date  = (month.Length == 1 ? "0" + month : month) + "/"
                               + (day.Length == 1 ? "0" + day : day) + "/"
                               + DateTime.Now.Year;


                if (InForm.getSelectedType() == "CHECK")
                {
                    if (InForm.getAmount() > balance)
                    {
                        DialogResult result = MessageBox.Show("This transaction will give you a negative balance. Continue?", "Boelo - Intro Project 2 - More Checks", MessageBoxButtons.YesNo);
                        if (result == DialogResult.No)
                        {
                            continue;
                        }
                    }
                    CheckTally.newSum(InForm.getAmount());
                    balance -= InForm.getAmount();
                    tra      = new IP02_TransactionsIO_Boelo(date, CheckTally.getNumChecks().ToString(), InForm.getAmount(), InForm.getName(), InForm.getMemo(), balance);
                    CheckTally.incrementNumChecks();
                }
                else if (InForm.getSelectedType() == "CASH")
                {
                    if (InForm.getAmount() > balance)
                    {
                        DialogResult result = MessageBox.Show("This transaction will give you a negative balance. Continue?", "Boelo - Intro Project 2 - More Checks", MessageBoxButtons.YesNo);
                        if (result == DialogResult.No)
                        {
                            continue;
                        }
                    }
                    balance -= InForm.getAmount();
                    tra      = new IP02_TransactionsIO_Boelo(date, InForm.getSelectedType(), InForm.getAmount(), InForm.getSelectedType(), InForm.getMemo(), balance);
                }
                else
                {
                    balance += InForm.getAmount();
                    tra      = new IP02_TransactionsIO_Boelo(date, InForm.getSelectedType(), InForm.getAmount(), InForm.getSelectedType(), InForm.getMemo(), balance);
                }


                csvRead.readCSV(fileName, tra.getFormattedTransaction());
                // These get the vaules from the input form.
                // Name is trimmed of whitespace and amount is positive non-zero
                // InForm.getName()
                // InForm.getAmount()
                // InForm.getMemo()

                // Creates the input processor
                IP02_Boelo_InputProcessor proc = new IP02_Boelo_InputProcessor();

                // This method converts the getAmount into the string so the decimal and the whole number can be evaluated
                proc.Parse(InForm.getAmount());

                // This method prints the dollar amount in the word format
                string dollarAmountAsTxt = proc.PrintString();

                // Creates and runs the output gui
                OutputGUI output = new OutputGUI();
                if (InForm.getSelectedType() == "CHECK" && InForm.viewCheck() == true)
                {
                    output.displayCheck(CheckTally.getNumChecks() - 1, InForm.getName(), InForm.getAmount(), dollarAmountAsTxt, InForm.getMemo(), CheckTally.getNumChecksWrote(), CheckTally.getCheckSum());
                }

                // debug for amount to string
                // MessageBox.Show("Amount: "+InForm.getAmount()+"\nAmount Text: "+dollarAmountAsTxt);

                // Creates a message box asking if they want to enter another check.
                DialogResult dialogResult = MessageBox.Show("Current balance: " + balance + "\nWould you like to enter another transaction?", "Boelo - Intro Project 2 - More Checks", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    Rep = true;
                }
                else
                {
                    Rep = false;
                }
            }while(Rep);

            // debug for tally
            //MessageBox.Show("sum: " + CheckTally.getCheckSum() + "\nNum Checks: " + CheckTally.getNumChecks());
        }
        public void TestRunEngine()
        {
            IP02_Boelo_RunEngine engine = new IP02_Boelo_RunEngine();

            engine.test("checkbook.cbk");
        }