예제 #1
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            // Adds the info from the textboxes to either a full time or part time employee class.
            // This only works if the salary (or hoursworked and hourlyrate for a part time) are numbers
            // Otherwise, it displays an error message on the top of the screen.

            // If the FT radio is checked, create a fulltime employee, otherwise part time
            if ((Boolean)FTradio.IsChecked)
            {
                decimal salary = 0;

                // Attmpy to get salary, if it's not valid, display error msg
                if (decimal.TryParse(tbxSalary.Text, out salary))
                {
                    FullTimeEmployee emp = new FullTimeEmployee(tbxFirstName.Text, tbxSurname.Text, salary);
                    employees.Add(emp);
                }
                else
                {
                    tbkMsg.Text = "Salary is not valid";
                }
            }
            else if ((Boolean)PTradio.IsChecked)
            {
                decimal hourlyrate  = 0;
                double  hoursworked = 0;

                // If the hourly rate and works worked are not valid, display error msg
                if (decimal.TryParse(tbxHourlyRate.Text, out hourlyrate) && double.TryParse(tbxHourlyRate.Text, out hoursworked))
                {
                    // Make a new part time employee with the constuctors
                    PartTimeEmployee emp = new PartTimeEmployee(tbxFirstName.Text, tbxSurname.Text, hourlyrate, hoursworked);
                    employees.Add(emp);
                }
                else
                {
                    tbkMsg.Text = "Hourly rate and hours worked must be numbers";
                }
            }
            else
            {
                tbkMsg.Text = "A part time or full time option must be selected";
            }

            // Clears the info once done, then refresh the list
            ClearInfo();
            RefreshList();
        }
예제 #2
0
        private void LbxEmployees_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // Puts info into the text boxes once
            // one of the employees in the listbox is selected

            // Clears the info
            ClearInfo();

            // Sets the employee selected to geneiric employee class
            Employee SelectedEmployee = LbxEmployees.SelectedItem as Employee;

            // If it is null, don't do anything
            if (SelectedEmployee != null)
            {
                // Since the firstname and surname is common in FT and PT employee, you can set it
                tbxFirstName.Text = SelectedEmployee.FirstName;
                tbxSurname.Text   = SelectedEmployee.Surname;

                // If the emp is FT, cast it to FT and set the salary.
                // This is because you can't access the derived class properties if it is not in the base class.
                if (SelectedEmployee is FullTimeEmployee)
                {
                    tbxSalary.Text = (SelectedEmployee as FullTimeEmployee).Salary.ToString();

                    // Set the radio button of Full time to true to show it is a full time employee
                    // Also for ease in updating
                    FTradio.IsChecked = true;
                }
                else if (SelectedEmployee is PartTimeEmployee)
                {
                    // Same as above but with Part time properties
                    PartTimeEmployee PTtmp = SelectedEmployee as PartTimeEmployee;

                    tbxHourlyRate.Text  = PTtmp.HourlyRate.ToString();
                    tbxHoursWorked.Text = PTtmp.HoursWorked.ToString();

                    PTradio.IsChecked = true;
                }

                // Calculate the montly pay and display it
                tbkMonthlyPay.Text = String.Format("{0:0.00}", SelectedEmployee.CalculateMonthlyPay());
            }
        }
예제 #3
0
        private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            // Updates a selected employee object with info entered into the boxes.
            // Only updates if the info is valid
            // If you are changing an employees part/full time status, it make a new object and deletes the selected

            // Get the selected employee
            Employee SelectedEmployee = LbxEmployees.SelectedItem as Employee;

            // If the employee exists
            if (SelectedEmployee != null)
            {
                // If the employee is full time, try to get and set salary to the one in the textbox
                if (SelectedEmployee is FullTimeEmployee)
                {
                    // If the full time radio button is checked and the employee is fulltime, just change the values
                    if ((Boolean)FTradio.IsChecked)
                    {
                        FullTimeEmployee FTemp = SelectedEmployee as FullTimeEmployee;

                        decimal salary = 0;

                        if (decimal.TryParse(tbxSalary.Text, out salary))
                        {
                            FTemp.FirstName = tbxFirstName.Text;
                            FTemp.Surname   = tbxSurname.Text;
                            FTemp.Salary    = salary;
                        }
                        else
                        {
                            tbkMsg.Text = "Salary is not valid";
                        }
                    }
                    // If the part time button is checked, then make a new employee obj to replace the old one
                    else
                    {
                        decimal hourlyrate  = 0;
                        double  hoursworked = 0;

                        // If the hourly rate and works worked are not valid, display error msg
                        if (decimal.TryParse(tbxHourlyRate.Text, out hourlyrate) && double.TryParse(tbxHoursWorked.Text, out hoursworked))
                        {
                            // Make a new part time employee with the constuctors
                            employees.Remove(SelectedEmployee);

                            PartTimeEmployee emp = new PartTimeEmployee(tbxFirstName.Text, tbxSurname.Text, hourlyrate, hoursworked);
                            employees.Add(emp);
                        }
                        else
                        {
                            tbkMsg.Text = "Hourly rate and hours worked must be numbers";
                        }
                    }
                }
                else if (SelectedEmployee is PartTimeEmployee)
                {
                    // If the part time radio button is checked and the employee is part time
                    // then parse the hourlyrate and hoursworked, and change the values of the partime
                    // employee obj
                    if ((Boolean)PTradio.IsChecked)
                    {
                        // Casting the selected employee to part time
                        PartTimeEmployee PTemp = SelectedEmployee as PartTimeEmployee;

                        decimal hourlyrate  = 0;
                        double  hoursworked = 0;

                        // Try to get the hourlyrate and hours worked. If successful, set them to the employee
                        if (decimal.TryParse(tbxHourlyRate.Text, out hourlyrate) && double.TryParse(tbxHoursWorked.Text, out hoursworked))
                        {
                            PTemp.FirstName   = tbxFirstName.Text;
                            PTemp.Surname     = tbxSurname.Text;
                            PTemp.HourlyRate  = hourlyrate;
                            PTemp.HoursWorked = hoursworked;
                        }
                        else
                        {
                            tbkMsg.Text = "Hourly rate and hours worked not valid";
                        }
                    }
                    // If the ft radio button is checked, make a new fulltimeemployee class
                    // and then append to the list, and remove the previous employee class
                    else
                    {
                        decimal salary = 0;

                        // Attmpy to get salary, if it's not valid, display error msg
                        if (decimal.TryParse(tbxSalary.Text, out salary))
                        {
                            employees.Remove(SelectedEmployee);

                            FullTimeEmployee emp = new FullTimeEmployee(tbxFirstName.Text, tbxSurname.Text, salary);
                            employees.Add(emp);
                        }
                        else
                        {
                            tbkMsg.Text = "Salary is not valid";
                        }
                    }
                }
                else
                {
                    tbkMsg.Text = "Select an employee to update";
                }
            }
            else
            {
                tbkMsg.Text = "Select an employee to update";
            }

            ClearInfo();
            RefreshList();
        }