private void SaveButton_ClickSalary(object sender1, EventArgs e1, TextBox monthlyTextBox, TextBox firstName, TextBox lastName, string empId, TextBox DepartmentName, TextBox Title, TextBox StartDate, TextBox Benefits) { if (BusinessRules.Instance.empData.ContainsKey(empId)) { try { if (Regex.IsMatch(firstName.Text, @"^[a-zA-Z]+$") == false) { throw new Exception("First name should only contain letters"); } if (Regex.IsMatch(lastName.Text, @"^[a-zA-Z]+$") == false) { throw new Exception("Last name should only contain letters"); } string fullName = firstName.Text + " " + lastName.Text; double eId = Convert.ToDouble(empId); double salary = Convert.ToDouble(monthlyTextBox.Text); double emplTy = Convert.ToDouble(empType.Salary); monthlyTextBox.BackColor = Color.White; firstName.BackColor = Color.White; lastName.BackColor = Color.White; BusinessRules.Instance.UpdateEmployee(eId, emplTy, firstName.Text, fullName, lastName.Text, DepartmentName.Text, Title.Text, StartDate.Text, Benefits.Text, salary); MessageBox.Show(firstName.Text + " has been updated!"); } catch (Exception e) { if (e.Message == "Input string was not in a correct format.") { monthlyTextBox.BackColor = Color.Red; firstName.BackColor = Color.White; lastName.BackColor = Color.White; MessageBox.Show("Monthly Salary should only contain numbers "); } else { firstName.BackColor = Color.Red; lastName.BackColor = Color.Red; monthlyTextBox.BackColor = Color.White; MessageBox.Show(/*"Contract should only contain numbers "+ Environment.NewLine + */ e.Message); } } } else { try { if (Regex.IsMatch(firstName.Text, @"^[a-zA-Z]+$") == false) { throw new Exception("First name should only contain letters"); } if (Regex.IsMatch(lastName.Text, @"^[a-zA-Z]+$") == false) { throw new Exception("Last name should only contain letters"); } string fullName = firstName.Text + " " + lastName.Text; double eId = Convert.ToDouble(empId); double salary = Convert.ToDouble(monthlyTextBox.Text); double emplTy = Convert.ToDouble(empType.Salary); firstName.BackColor = Color.White; lastName.BackColor = Color.White; monthlyTextBox.BackColor = Color.White; Salary employee = new Salary(eId, emplTy, firstName.Text, fullName, lastName.Text, DepartmentName.Text, Title.Text, StartDate.Text, Benefits.Text, false, salary); employeeList.Items.Add(employee.empId); BusinessRules.Instance.AddEmployee(empId, employee); } catch (Exception e) { if (e.Message == "Input string was not in a correct format.") { monthlyTextBox.BackColor = Color.Red; firstName.BackColor = Color.White; lastName.BackColor = Color.White; MessageBox.Show("Monthly Salary should only contain numbers "); } else { firstName.BackColor = Color.Red; lastName.BackColor = Color.Red; monthlyTextBox.BackColor = Color.White; MessageBox.Show(/*"Contract should only contain numbers "+ Environment.NewLine + */ e.Message); } } } }
private void employeeList_SelectedIndexChanged(object sender, EventArgs e, TextBox firstName, TextBox lastName, ComboBox dropdown, TextBox DepartmentName, TextBox Title, TextBox StartDate, TextBox Benefits) { mainPanel.Controls.Clear(); ListBox lb = sender as ListBox; int selected = lb.SelectedIndex; if (selected == -1) { return; } var empId = lb.Items[selected]; string id = empId.ToString(); var employee = BusinessRules.Instance.empData.ContainsKey(id) ? BusinessRules.Instance.empData[id] : BusinessRules.Instance.empDel[id]; string employeeId = employee.empId.ToString(); if (employee.empType == 0) { HourlyEmployee hEmployee = (HourlyEmployee)employee; dropdown.SelectedIndex = (int)hEmployee.empType; Label empID = new Label(); empID.Location = new Point(175, 10); mainPanel.Controls.Add(empID); empID.AutoSize = true; empID.BringToFront(); empID.Text = "Employee ID: " + employeeId; TextBox hourlyRateText = new TextBox(); hourlyRateText.Location = new Point(175, 65); mainPanel.Controls.Add(hourlyRateText); hourlyRateText.BringToFront(); hourlyRateText.Text = hEmployee.hourlyRate.ToString(); Label hourlyRateLabel = new Label(); hourlyRateLabel.Location = new Point(175, 40); mainPanel.Controls.Add(hourlyRateLabel); hourlyRateLabel.BringToFront(); hourlyRateLabel.Text = "Hourly Rate*"; TextBox HoursWorkedText = new TextBox(); HoursWorkedText.Location = new Point(175, 120); mainPanel.Controls.Add(HoursWorkedText); HoursWorkedText.BringToFront(); HoursWorkedText.Text = hEmployee.hoursWorked.ToString(); Label HoursWorkedLabel = new Label(); HoursWorkedLabel.Location = new Point(175, 90); mainPanel.Controls.Add(HoursWorkedLabel); HoursWorkedLabel.BringToFront(); HoursWorkedLabel.Text = "Hours Worked*"; firstName.Text = hEmployee.firstName; lastName.Text = hEmployee.lastName; DepartmentName.Text = hEmployee.departmentName; Title.Text = hEmployee.title; StartDate.Text = hEmployee.startDate; Benefits.Text = hEmployee.benefits; Button SaveButton = new Button(); SaveButton.Location = new Point(175, 275); mainPanel.Controls.Add(SaveButton); SaveButton.BringToFront(); SaveButton.Text = "Save"; SaveButton.Click += delegate(object sender1, EventArgs e1) { SaveButton_ClickHourly(sender1, e1, HoursWorkedText, hourlyRateText, firstName, lastName, employeeId, DepartmentName, Title, StartDate, Benefits); }; } else if (employee.empType == 1) { Salary sEmployee = (Salary)employee; dropdown.SelectedIndex = (int)sEmployee.empType; Label empID = new Label(); empID.Location = new Point(175, 10); mainPanel.Controls.Add(empID); empID.AutoSize = true; empID.BringToFront(); empID.Text = "Employee ID: " + employeeId; TextBox monthlyTextBox = new TextBox(); monthlyTextBox.Location = new Point(175, 65); mainPanel.Controls.Add(monthlyTextBox); monthlyTextBox.BringToFront(); monthlyTextBox.Text = sEmployee.monthlySalary.ToString(); Label monthlySalary = new Label(); monthlySalary.Location = new Point(175, 40); mainPanel.Controls.Add(monthlySalary); monthlySalary.BringToFront(); monthlySalary.Text = "Monthly Salary*"; firstName.Text = sEmployee.firstName; lastName.Text = sEmployee.lastName; DepartmentName.Text = sEmployee.departmentName; Title.Text = sEmployee.title; StartDate.Text = sEmployee.startDate; Benefits.Text = sEmployee.benefits; Button SaveButton = new Button(); SaveButton.Location = new Point(175, 275); mainPanel.Controls.Add(SaveButton); SaveButton.BringToFront(); SaveButton.Text = "Save"; SaveButton.Click += delegate(object sender1, EventArgs e1) { SaveButton_ClickSalary(sender1, e1, monthlyTextBox, firstName, lastName, employeeId, DepartmentName, Title, StartDate, Benefits); }; } else if (employee.empType == 2) { Sales saleEmployee = (Sales)employee; dropdown.SelectedIndex = (int)saleEmployee.empType; Label empID = new Label(); empID.Location = new Point(175, 10); mainPanel.Controls.Add(empID); empID.AutoSize = true; empID.BringToFront(); empID.Text = "Employee ID: " + employeeId; TextBox monthlyTextBox = new TextBox(); monthlyTextBox.Location = new Point(175, 65); mainPanel.Controls.Add(monthlyTextBox); monthlyTextBox.BringToFront(); monthlyTextBox.Text = saleEmployee.monthlySalary.ToString(); Label monthlySalary = new Label(); monthlySalary.Location = new Point(175, 40); mainPanel.Controls.Add(monthlySalary); monthlySalary.BringToFront(); monthlySalary.Text = "Monthly Salary*"; Label grossSales = new Label(); grossSales.Location = new Point(175, 90); mainPanel.Controls.Add(grossSales); grossSales.BringToFront(); grossSales.Text = "Gross Sales*"; TextBox grossTextBox = new TextBox(); grossTextBox.Location = new Point(175, 120); mainPanel.Controls.Add(grossTextBox); grossTextBox.BringToFront(); grossTextBox.Text = saleEmployee.grossSales.ToString(); Label Commission = new Label(); Commission.Location = new Point(300, 40); mainPanel.Controls.Add(Commission); Commission.BringToFront(); Commission.Text = "Commission*"; TextBox commissionTextBox = new TextBox(); commissionTextBox.Location = new Point(300, 65); mainPanel.Controls.Add(commissionTextBox); commissionTextBox.BringToFront(); commissionTextBox.Text = saleEmployee.commission.ToString(); firstName.Text = saleEmployee.firstName; lastName.Text = saleEmployee.lastName; DepartmentName.Text = saleEmployee.departmentName; Title.Text = saleEmployee.title; StartDate.Text = saleEmployee.startDate; Benefits.Text = saleEmployee.benefits; Button SaveButton = new Button(); SaveButton.Location = new Point(175, 275); mainPanel.Controls.Add(SaveButton); SaveButton.BringToFront(); SaveButton.Text = "Save"; SaveButton.Click += delegate(object sender1, EventArgs e1) { SaveButton_ClickSales(sender1, e1, monthlyTextBox, grossTextBox, commissionTextBox, firstName, lastName, employeeId, DepartmentName, Title, StartDate, Benefits); }; } else { Contract cEmployee = (Contract)employee; dropdown.SelectedIndex = (int)cEmployee.empType; Label empID = new Label(); empID.Location = new Point(175, 10); mainPanel.Controls.Add(empID); empID.AutoSize = true; empID.BringToFront(); empID.Text = "Employee ID: " + employeeId; TextBox contractWageText = new TextBox(); contractWageText.Location = new Point(175, 65); mainPanel.Controls.Add(contractWageText); contractWageText.BringToFront(); contractWageText.Text = cEmployee.contractWage.ToString(); Label contractWageLabel = new Label(); contractWageLabel.Location = new Point(175, 40); mainPanel.Controls.Add(contractWageLabel); contractWageLabel.BringToFront(); contractWageLabel.Text = "Contract Wage*"; firstName.Text = cEmployee.firstName; lastName.Text = cEmployee.lastName; DepartmentName.Text = cEmployee.departmentName; Title.Text = cEmployee.title; StartDate.Text = cEmployee.startDate; Benefits.Text = cEmployee.benefits; Button SaveButton = new Button(); SaveButton.Location = new Point(175, 275); mainPanel.Controls.Add(SaveButton); SaveButton.BringToFront(); SaveButton.Text = "Save"; SaveButton.Click += delegate(object sender1, EventArgs e1) { SaveButton_ClickContract(sender1, e1, contractWageText, firstName, lastName, employeeId, DepartmentName, Title, StartDate, Benefits); }; } }