Advertisement
Braber01

Loading Data into form

Mar 9th, 2017
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 16.62 KB | None | 0 0
  1. //Ben Raber
  2. //simulates an Atm part 1
  3. //Created 2-1-2017
  4.  
  5.  
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15.  
  16. namespace Raber_assignment3 {
  17.     public partial class Form1 : Form {
  18.  
  19.         /*
  20.          * Program specifications (business requirements):  Customer bank account
  21.          * Create a Windows application that shows a customer account information.
  22.          * This will be the Windows stub for the next couple of programming assignments.
  23.          * Remember to think about the programming process when developing your solution:
  24.          * INPUT
  25.          * PROCESS/LOGIC/COMPUTATION/ALGORITHM
  26.          * OUTPUT
  27.          * Program requirements:
  28.          * The Show Balance button should display a message box with an
  29.          * Information icon, message box title “Customer Balance” and the OK button with the following message:
  30.          * “Customer <<value from text box>> has $500 in the <<account combo value>> “.
  31.          *  The hard coded dollar value in the message box will remain the same.
  32.          *  The Welcome, Deposit, Withdrawal and Print Payment buttons should display the appropriate message
  33.          *  based on these buttons design constraints below.
  34.          *  The program should populate the accounts combo box with the following values of
  35.          *  Checking, Savings, Money Market, Certificate of Deposit showing the default value of
  36.          *  “---Select an Account Type—“.
  37.          *  The program should check to see if an account has been selected from the accounts dropdown list
  38.          *  before attempting to show the customer balance info via the Show Balance button. If no account has been selected, the following error message “No account selected. Please select an account” should be displayed in a Message Box with the error icon, message box title “Error” and the OK button.
  39.          *  The Clear button clears all UI fields and resets the accounts combo box to the first item in the combo box.
  40.          *  The Exit button closes the application.
  41.  
  42.  
  43.  
  44.  
  45.  
  46. */
  47.         public Form1() {
  48.             InitializeComponent();
  49.  
  50.         }
  51.  
  52.         private CheckingAccount cAccount;
  53.         private SavingsAccount sAccount;
  54.         public List<Customer> custList;
  55.  
  56.         private void PopulateCombo() {
  57.             cboAccount.Items.Add("--Select an Account--");
  58.             //cboAccount.Items.Add("Checking");
  59.             //cboAccount.Items.Add("Savings");
  60.             //cboAccount.Items.Add("Money Market");
  61.             //cboAccount.Items.Add("Certificate of Deposit");
  62.            
  63.         }
  64.  
  65.  
  66.         private void ClearUI() {
  67.             cboAccount.SelectedIndex = 0;
  68.             txtDeposit.Clear();
  69.             txtFisrtName.Clear();
  70.             txtLastName.Clear();
  71.             txtWithdrawl.Clear();
  72.             grpCust.Enabled = true;
  73.             grpTransaction.Enabled = false;
  74.             txtDeposit.Enabled = false;
  75.             txtFisrtName.Enabled = true;
  76.             txtLastName.Enabled = true;
  77.             txtWithdrawl.Enabled = false;
  78.             btnDeposit.Enabled = false;
  79.             btnWithdrawl.Enabled = false;
  80.             btnBalance.Enabled = false;
  81.             btnPrintStatement.Enabled = false;
  82.             mtxtAccountNumber.Clear();
  83.             btnWelcome.Enabled = true;
  84.         }
  85.  
  86.         private void MethodNotImplementedException() {
  87.             throw new NotImplementedException();
  88.         }
  89.         List<Customer> customerList = new List<Customer> {
  90.                 new Customer {
  91.                     AccountNumber = "123ABC",
  92.                     Saluation = "Mr",
  93.                     FirstName = "Dan",
  94.                     LastName = "Brown",
  95.                     Address = "3939 Test",
  96.                     City = "St. Louis",
  97.                     State = "MO",
  98.                     ZipCode = "93893",
  99.                     HomePhone = "3144948321",
  100.                     CellPhone = "3148389333",
  101.                     Account = new List<BankAccount> {
  102.                         new CheckingAccount() { Notes = "From checking account" },
  103.                         new SavingsAccount() {Notes = "From savings account" }
  104.                     }
  105.                 },
  106.                 new Customer {
  107.                     AccountNumber = "456DEF",
  108.                     Saluation = "Mrs.",
  109.                     FirstName = "Susan",
  110.                     LastName = "Green",
  111.                     Address = "3940 Somestreet",
  112.                     City = "St. Louis",
  113.                     State = "MO",
  114.                     ZipCode = "63103",
  115.                     HomePhone = "3147775555",
  116.                     CellPhone = "3145550909",
  117.                     Account = new List<BankAccount> {
  118.                         new CheckingAccount {Notes = "From checking account" }
  119.                     }
  120.                 },
  121.                 new Customer {
  122.                     AccountNumber = "789GHI",
  123.                     Saluation = "Ms.",
  124.                     FirstName = "Lauren",
  125.                     LastName = "Dell",
  126.                     Address = "3941 Elm Street",
  127.                     City = "St. Louis",
  128.                     State = "MO",
  129.                     ZipCode = "61345",
  130.                     HomePhone = "3148381111",
  131.                     CellPhone = "3143633336",
  132.                     Account = new List<BankAccount> {
  133.                         new SavingsAccount {Notes = "From savings account" }
  134.                     }
  135.                 }
  136.             };
  137.         private void Form1_Load(object sender, EventArgs e) {
  138.             PopulateCombo();
  139.             cboCustomer.Items.Add("Please select a customer");
  140.             foreach(Customer cust in customerList) {
  141.                 cboCustomer.Items.Add(cust.FullName);
  142.             }
  143.             btnDeposit.Enabled = false;
  144.             btnWithdrawl.Enabled = false;
  145.             btnBalance.Enabled = false;
  146.             btnPrintStatement.Enabled = false;
  147.             txtDeposit.Enabled = false;
  148.             txtWithdrawl.Enabled = false;
  149.             cboAccount.SelectedIndex = 0;
  150.            
  151.         }
  152.  
  153.         private void btnWelcome_Click(object sender, EventArgs e) {
  154.             frmCustomer custFrm = new frmCustomer();
  155.            
  156.             custFrm.ShowDialog();
  157.             if (ValadateUI()) {
  158.                 grpCust.Enabled = false;
  159.                 grpTransaction.Enabled = true;
  160.                 btnDeposit.Enabled = true;
  161.                 btnWithdrawl.Enabled = true;
  162.                 btnBalance.Enabled = true;
  163.                 btnPrintStatement.Enabled = true;
  164.                 txtDeposit.Enabled = true;
  165.                 txtWithdrawl.Enabled = true;
  166.                 btnWelcome.Enabled = false;
  167.                 //Call another Form
  168.                 //frmCustomer myForm = new frmCustomer();
  169.                 custFrm.ShowDialog();
  170.                 Customer myCustomerFromfrmCustomer = custFrm.GetCustomer;
  171.                 //myForm.ShowDialog(); //Makes Form Modal
  172.                 custList.Add(myCustomerFromfrmCustomer);
  173.                 cboCustomer.Items.Clear();
  174.                 foreach(Customer person in custList) {
  175.                     cboCustomer.Items.Add(person.FullName);
  176.                 }
  177.             }
  178.            
  179.  
  180.  
  181.             /*try {
  182.                 MethodNotImplementedException();
  183.             }catch(NotImplementedException ex) {
  184.                 MessageBox.Show("Implementation is Pending", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information);
  185.             }*/
  186.  
  187.         }
  188.  
  189.         private void btnDeposit_Click(object sender, EventArgs e) {
  190.             if (txtDeposit.Text == String.Empty) {
  191.                 MessageBox.Show("Please enter an amount to Deposit in your account", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
  192.             } else {
  193.                 HandleButtons(this.btnDeposit);
  194.             }
  195.            
  196.         }
  197.  
  198.         private void HandleButtons(object sender) {
  199.             if(cAccount == null || cAccount.AccountNum.ToString() != mtxtAccountNumber.Text) {
  200.                 cAccount = new CheckingAccount(mtxtAccountNumber.Text, txtFisrtName.Text, txtLastName.Text);
  201.             }
  202.             if(sAccount == null || sAccount.AccountNum.ToString() != mtxtAccountNumber.Text) {
  203.                 sAccount = new SavingsAccount(mtxtAccountNumber.Text, txtFisrtName.Text, txtLastName.Text);
  204.             }
  205.  
  206.             //cAccount = new CheckingAccount(mtxtAccountNumber.Text, txtFisrtName.Text, txtLastName.Text);
  207.             //sAccount = new SavingsAccount(mtxtAccountNumber.Text, txtFisrtName.Text, txtLastName.Text);
  208.  
  209.             if(sender == btnDeposit) {
  210.                 switch (cboAccount.SelectedIndex) {
  211.                     case 1:
  212.                         //Checking Account
  213.                         decimal amount;
  214.                         bool result = decimal.TryParse(txtDeposit.Text, out amount);
  215.                         if (result) {
  216.                             cAccount.DepositAmount(amount);
  217.                             MessageBox.Show($"{amount.ToString("c")} has been deposited in {cboAccount.SelectedItem.ToString()}", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  218.                         }
  219.                         break;
  220.                     case 2:
  221.                         decimal s_amount;
  222.                         bool s_result = decimal.TryParse(txtDeposit.Text, out s_amount);
  223.                         if (s_result) {
  224.                             sAccount.DepositAmount(s_amount);
  225.                             MessageBox.Show($"{s_amount.ToString("c")} has been deposited in {cboAccount.SelectedItem.ToString()}", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  226.                         }
  227.                         break;
  228.                     case 3:
  229.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking sytem", MessageBoxButtons.OK, MessageBoxIcon.Error);
  230.                         break;
  231.                     case 4:
  232.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Error);
  233.                         break;
  234.  
  235.                 } //Switch
  236.             }else if(sender == btnWithdrawl) {
  237.                 switch (cboAccount.SelectedIndex) {
  238.                     case 1:
  239.                         //Checking Account
  240.                         decimal c_amount;
  241.                         bool c_result = decimal.TryParse(txtWithdrawl.Text, out c_amount);
  242.  
  243.                         if (c_result) {
  244.                             MessageBox.Show($"{ c_amount.ToString("c")} has been taken out of {cboAccount.SelectedItem.ToString()}", "Mearmac online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  245.                         }
  246.                         break;
  247.                     case 2:
  248.                         //Savings Account
  249.                         decimal s_amount;
  250.                         bool s_result = decimal.TryParse(txtWithdrawl.Text, out s_amount);
  251.  
  252.                         if (s_result) {
  253.                             sAccount.WithdrawAmount(s_amount);
  254.                             MessageBox.Show($"{s_amount.ToString("c")} has been Taken out of {cboAccount.SelectedItem.ToString()}", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  255.                         }
  256.                         break;
  257.                     case 3:
  258.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "mearmec online banking sytem", MessageBoxButtons.OK, MessageBoxIcon.Error);
  259.                         break;
  260.                     case 4:
  261.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Error);
  262.                         break;
  263.                 }
  264.             }else if(sender == btnBalance) {
  265.                 switch (cboAccount.SelectedIndex) {
  266.                     case 1:
  267.                         //Checking account
  268.                         MessageBox.Show($"{cAccount.ShowBallance()}", "Memearc online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  269.                         //cAccount.ShowBallance();
  270.                         break;
  271.                     case 2:
  272.                         //savings account
  273.                         //sAccount.ShowBallance();
  274.                         MessageBox.Show($"{sAccount.ShowBallance()}", "Memarc online banking system", MessageBoxButtons.OK, MessageBoxIcon.Information);
  275.                         break;
  276.                     case 3:
  277.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking sytem", MessageBoxButtons.OK, MessageBoxIcon.Error);
  278.                         break;
  279.                     case 4:
  280.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Error);
  281.                         break;
  282.                 }
  283.             }else if(sender == btnPrintStatement) {
  284.                 switch (cboAccount.SelectedIndex) {
  285.                     case 1:
  286.                         //Checking Account
  287.                         //cAccount.PrintStatement();
  288.                         MessageBox.Show($"{cAccount.PrintStatement()}","Mearmec Online Banking System", MessageBoxButtons.OK, MessageBoxIcon.Information);
  289.                         break;
  290.                     case 2:
  291.                         //Savings Account
  292.                         //sAccount.PrintStatement();
  293.                         MessageBox.Show($"{sAccount.PrintStatement()}","Mearmec online Banking System",MessageBoxButtons.OK,MessageBoxIcon.Information);
  294.                         break;
  295.                     case 3:
  296.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking sytem", MessageBoxButtons.OK, MessageBoxIcon.Error);
  297.                         break;
  298.                     case 4:
  299.                         MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} does not have a {cboAccount.SelectedItem.ToString()} account", "Mearmec online banking system", MessageBoxButtons.OK, MessageBoxIcon.Error);
  300.                         break;
  301.                 }
  302.             }else if (sender == btnClear) {
  303.                 sAccount = null;
  304.                 cAccount = null;
  305.                 ClearUI();
  306.             }
  307.         }
  308.  
  309.         private void btnWithdrawl_Click(object sender, EventArgs e) {
  310.             if (txtWithdrawl.Text == string.Empty) {
  311.                 MessageBox.Show("Please enter an amount to withdraw.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  312.             } else {
  313.                 HandleButtons(this.btnWithdrawl);
  314.             }
  315.         }
  316.    
  317.         private bool ValadateUI() {
  318.             if (cboAccount.SelectedIndex == -1) {
  319.                 MessageBox.Show("Please select an Account Type", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  320.                 return false;
  321.             }
  322.             if (!(mtxtAccountNumber.MaskFull)) {
  323.                 MessageBox.Show("Please enter an account ID", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  324.                 return false;
  325.             }
  326.             if(txtFisrtName.Text == String.Empty) {
  327.                 MessageBox.Show("Customer 1st name is Blank", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  328.                 return false;
  329.             }
  330.             if(txtLastName.Text == String.Empty) {
  331.                 MessageBox.Show("Customer last name is Blank", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  332.                 return false;
  333.             }
  334.             return true;
  335.         }
  336.  
  337.  
  338.  
  339.         private void btnBalance_Click(object sender, EventArgs e) {
  340.             //bool allValidationPassed = false;
  341.             if (ValadateUI()) {
  342.                 HandleButtons(this.btnBalance);
  343.  
  344.                 //MessageBox.Show($"{txtFisrtName.Text} {txtLastName.Text} has  in {cboAccount.SelectedItem.ToString()}");
  345.             }
  346.         }
  347.  
  348.         private void btnPrintStatement_Click(object sender, EventArgs e) {
  349.             HandleButtons(this.btnPrintStatement);
  350.             }
  351.  
  352.             /*try {
  353.                 MethodNotImplementedException();
  354.             } catch (NotImplementedException ex) {
  355.                 MessageBox.Show("Implementation is Pending", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information);
  356.             }*/
  357.        
  358.  
  359.         private void btnExit_Click(object sender, EventArgs e) {
  360.             this.Close();
  361.             Application.Exit();
  362.         }
  363.  
  364.         private void btnClear_Click(object sender, EventArgs e) {
  365.             HandleButtons(this.btnClear);
  366.             //ClearUI();
  367.         }
  368.  
  369.         private void cboCustomer_SelectedIndexChanged(object sender, EventArgs e) {
  370.             //if (cboCustomer.SelectedIndex != 0 || cboCustomer.SelectedIndex != -1) {
  371.             foreach(Customer cust in customerList) {
  372.                 txtFisrtName.Text = cust.FirstName;
  373.                 txtLastName.Text = cust.LastName;
  374.                 mtxtAccountNumber.Text = cust.AccountNumber;
  375.             }
  376.             //}
  377.  
  378.         }
  379.     }
  380. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement