コード例 #1
0
        private void OK_Click(object sender, RoutedEventArgs e)
        {
            bool check = true;

            if (changeMode == false)
            {
                Employee emp = new Employee();

                if (empBoss.SelectedItem != null && subWorkerList.Items != null)
                {
                    foreach (Employee item in subWorkerList.Items)
                    {
                        if (empBoss.SelectedItem == item)
                        {
                            MessageBox.Show("Ошибка! Начальник не может быть подчиненным.");
                            check = false;

                            subWorkerList.Items.Remove(item);
                            empBoss.SelectedItem       = null;
                            empSubWorkers.SelectedItem = null;
                            break;
                        }
                    }

                    if (check == true)
                    {
                        emp.Add(this);

                        empList.empManager.Add(emp);
                        employeeList.Items.Clear();
                        foreach (Employee employee in empList.empManager)
                        {
                            employeeList.Items.Add(employee);
                        }

                        empSurname.Clear();
                        empName.Clear();
                        empMiddlename.Clear();
                        empPhotoPath.Clear();
                        empPosition.Clear();
                        employmentDay.SelectedItem   = null;
                        employmentMonth.SelectedItem = null;
                        employmentYear.SelectedItem  = null;
                        isFired.IsChecked            = false;
                        dismissalDay.SelectedItem    = null;
                        dismissalMonth.SelectedItem  = null;
                        dismissalYear.SelectedItem   = null;
                        hasPrevPos.IsChecked         = false;
                        prevPosName.Clear();
                        prevPosTerm.Clear();
                        empDepartment.SelectedItem = null;
                        empBoss.SelectedItem       = null;
                        subWorkerList.Items.Clear();
                        empSubWorkers.SelectedItem = null;
                    }
                }
                else
                {
                    emp.Add(this);

                    empList.empManager.Add(emp);
                    employeeList.Items.Clear();
                    foreach (Employee employee in empList.empManager)
                    {
                        employeeList.Items.Add(employee);
                    }

                    empSurname.Clear();
                    empName.Clear();
                    empMiddlename.Clear();
                    empPhotoPath.Clear();
                    empPosition.Clear();
                    employmentDay.SelectedItem   = null;
                    employmentMonth.SelectedItem = null;
                    employmentYear.SelectedItem  = null;
                    isFired.IsChecked            = false;
                    dismissalDay.SelectedItem    = null;
                    dismissalMonth.SelectedItem  = null;
                    dismissalYear.SelectedItem   = null;
                    hasPrevPos.IsChecked         = false;
                    prevPosName.Clear();
                    prevPosTerm.Clear();
                    empDepartment.SelectedItem = null;
                    empBoss.SelectedItem       = null;
                    subWorkerList.Items.Clear();
                    empSubWorkers.SelectedItem = null;
                }
            }
            else
            {
                Employee emp = new Employee();

                if (empBoss.SelectedItem != null && subWorkerList.Items != null)
                {
                    check = true;
                    foreach (Employee item in subWorkerList.Items)
                    {
                        if (empBoss.SelectedItem == item)
                        {
                            MessageBox.Show("Ошибка! Начальник не может быть подчиненным.");
                            check = false;

                            subWorkerList.Items.Remove(item);
                            empBoss.SelectedItem       = null;
                            empSubWorkers.SelectedItem = null;
                            break;
                        }
                    }

                    if (check == true)
                    {
                        emp.Add(this);

                        empList.empManager.Remove((Employee)employeeList.SelectedItem);
                        empList.empManager.Add(emp);
                        employeeList.Items.Clear();
                        foreach (Employee employee in empList.empManager)
                        {
                            employeeList.Items.Add(employee);
                        }
                        changeMode = false;

                        empSurname.Clear();
                        empName.Clear();
                        empMiddlename.Clear();
                        empPhotoPath.Clear();
                        empPosition.Clear();
                        employmentDay.SelectedItem   = null;
                        employmentMonth.SelectedItem = null;
                        employmentYear.SelectedItem  = null;
                        isFired.IsChecked            = false;
                        dismissalDay.SelectedItem    = null;
                        dismissalMonth.SelectedItem  = null;
                        dismissalYear.SelectedItem   = null;
                        hasPrevPos.IsChecked         = false;
                        prevPosName.Clear();
                        prevPosTerm.Clear();
                        empDepartment.SelectedItem = null;
                        empBoss.SelectedItem       = null;
                        subWorkerList.Items.Clear();
                        empSubWorkers.SelectedItem = null;
                    }
                }
                else
                {
                    emp.Add(this);

                    empList.empManager.Remove((Employee)employeeList.SelectedItem);
                    empList.empManager.Add(emp);
                    employeeList.Items.Clear();
                    foreach (Employee employee in empList.empManager)
                    {
                        employeeList.Items.Add(employee);
                    }
                    changeMode = false;

                    empSurname.Clear();
                    empName.Clear();
                    empMiddlename.Clear();
                    empPhotoPath.Clear();
                    empPosition.Clear();
                    employmentDay.SelectedItem   = null;
                    employmentMonth.SelectedItem = null;
                    employmentYear.SelectedItem  = null;
                    isFired.IsChecked            = false;
                    dismissalDay.SelectedItem    = null;
                    dismissalMonth.SelectedItem  = null;
                    dismissalYear.SelectedItem   = null;
                    hasPrevPos.IsChecked         = false;
                    prevPosName.Clear();
                    prevPosTerm.Clear();
                    empDepartment.SelectedItem = null;
                    empBoss.SelectedItem       = null;
                    subWorkerList.Items.Clear();
                    empSubWorkers.SelectedItem = null;
                }
            }
        }