Example #1
0
        private void FillDepartmentsTreeView()
        {
            GlobalVars.Log.Info("MainForm: Заполнение DepartmentsTreeView");
            TreeView_Departments.Nodes.Clear();

            using (var db = new TestDBEntities())
            {
                var rootDepartments = db.Department.Where(x => x.ParentDepartmentID == null);

                foreach (var rootDepartment in rootDepartments)
                {
                    var rootNode = new TreeNode($"{rootDepartment.Code} / {rootDepartment.Name}")
                    {
                        Name = rootDepartment.ID.ToString()
                    };
                    TreeView_Departments.Nodes.Add(rootNode);
                    FillDepartmentsChildTreeView(rootNode, rootDepartment);
                }
            }

            Label_DepartmentInfoID.Text       = "";
            Label_DepartmentInfoName.Text     = "";
            Label_DepartmentInfoCodeName.Text = "";
            Button_DeleteDepartment.Enabled   = false;
            Button_EditDepartment.Enabled     = false;
            DataGridView_Employers.DataSource = null;
            DataGridView_Employers.Columns.Clear();
        }
Example #2
0
        private void FillDataGridViewEmployers()
        {
            GlobalVars.Log.Info("MainForm: Заполнение DataGridViewEmployers");
            var selectedDepartmentId = new Guid(TreeView_Departments.SelectedNode.Name);

            using (var db = new TestDBEntities())
            {
                var department = db.Department.First(x => x.ID == selectedDepartmentId);
                Label_DepartmentInfoID.Text       = department.ID.ToString();
                Label_DepartmentInfoName.Text     = department.Name;
                Label_DepartmentInfoCodeName.Text = department.Code;
                Button_DeleteDepartment.Enabled   = true;
                Button_EditDepartment.Enabled     = true;

                DataGridView_Employers.DataSource = db.Empoyee.Where(x => x.DepartmentID == selectedDepartmentId).ToList();
                DataGridView_Employers.Columns["Department"].Visible   = false;
                DataGridView_Employers.Columns["DepartmentID"].Visible = false;

                if (DataGridView_Employers.Columns["Age"] == null)
                {
                    DataGridView_Employers.Columns.Add("Age", "Age");
                }

                foreach (DataGridViewRow row in DataGridView_Employers.Rows)
                {
                    row.Cells["Age"].Value = new DateTime(DateTime.Now.Subtract(Convert.ToDateTime(row.Cells["DateOfBirth"].Value.ToString())).Ticks).Year - 1;
                }

                foreach (DataGridViewColumn column in DataGridView_Employers.Columns)
                {
                    column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                }
            }
        }
Example #3
0
        private void Button_RemoveEmployee_Click(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("MainForm: Удаление сотрудника");
            if (DataGridView_Employers.SelectedRows.Count != 0)
            {
                var employeeId = Convert.ToDecimal(DataGridView_Employers.SelectedRows[0].Cells["ID"].Value);

                using (var db = new TestDBEntities())
                {
                    var employee = db.Empoyee.First(x => x.ID == employeeId);

                    if (MessageBox.Show($"Вы действительно хотите удалить сотрудника {employee.FirstName} {employee.SurName} {employee.Patronymic} из базы?",
                                        "Warning",
                                        MessageBoxButtons.YesNo,
                                        MessageBoxIcon.Warning,
                                        MessageBoxDefaultButton.Button2)
                        == DialogResult.Yes)
                    {
                        db.Empoyee.Remove(employee);
                        db.SaveChanges();
                        FillDataGridViewEmployers();
                    }
                }
            }
        }
Example #4
0
        private void Button_DeleteDepartment_Click(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("MainForm: Удаление отдела");
            using (var db = new TestDBEntities())
            {
                var selectedDepartmentId = new Guid(TreeView_Departments.SelectedNode.Name);
                var selectedDepartment   = db.Department.First(x => x.ID == selectedDepartmentId);

                if (MessageBox.Show($"Вы действительно хотите удалить отдел \"{selectedDepartment.Code} / {selectedDepartment.Name}\"",
                                    "Warning",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning,
                                    MessageBoxDefaultButton.Button2)
                    == DialogResult.Yes)
                {
                    var departmentsDorDelete = new List <Department>();
                    RecursiveDeleteDepartmentEmployers(departmentsDorDelete, selectedDepartment, db);
                    db.Department.RemoveRange(departmentsDorDelete);
                    db.SaveChanges();
                    FillDepartmentsTreeView();
                    DataGridView_Employers.DataSource = null;
                    DataGridView_Employers.Columns.Clear();
                }
            }
        }
Example #5
0
        private void EmployeeInfoEdit_Load(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("EmployeeInfoEdit: Загрузка информации о сотруднике");
            using (var db = new TestDBEntities())
            {
                var departments = db.Department.ToList();

                foreach (var department in departments)
                {
                    ComboBox_Department.Items.Add($"{department.Code} / {department.Name}");
                }

                if (_employeeId != -1)
                {
                    var employee = db.Empoyee.First(x => x.ID == _employeeId);
                    TextBox_FirstName.Text            = employee.FirstName;
                    TextBox_SurName.Text              = employee.SurName;
                    TextBox_Patronymic.Text           = employee.Patronymic;
                    DateTimePicker_BirthDate.Value    = employee.DateOfBirth;
                    TextBox_DocSeries.Text            = employee.DocSeries;
                    TextBox_DocNumber.Text            = employee.DocNumber;
                    TextBox_Position.Text             = employee.Position;
                    ComboBox_Department.SelectedIndex = departments.FindIndex(x => x.ID == employee.DepartmentID);
                }
                else if (_selectedDepartmentId != null)
                {
                    ComboBox_Department.SelectedIndex = departments.FindIndex(x => x.ID == _selectedDepartmentId);
                }
                else
                {
                    ComboBox_Department.SelectedIndex = -1;
                }
            }
        }
        private void DepartmentInfoEditForm_Load(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("DepartmentInfoEditForm: Загрузка информации об отделе.");
            using (var db = new TestDBEntities())
            {
                var departments = db.Department.ToList();

                ComboBox_ParentDepartment.Items.Add("Нет");

                foreach (var department in departments)
                {
                    ComboBox_ParentDepartment.Items.Add($"{department.Code} / {department.Name}");
                }

                ComboBox_ParentDepartment.SelectedIndex = 0;

                if (_departmentId != null)
                {
                    var department = db.Department.First(x => x.ID == _departmentId);
                    MaskedTextBox_ID.Text = department.ID.ToString();
                    TextBox_Name.Text     = department.Name;
                    TextBox_CodeName.Text = department.Code;

                    if (department.ParentDepartmentID != null)
                    {
                        ComboBox_ParentDepartment.SelectedIndex = departments.FindIndex(x => x.ID == department.ParentDepartmentID) + 1;
                    }
                }
                else
                {
                    MaskedTextBox_ID.Text = Guid.NewGuid().ToString();
                }
            }
        }
Example #7
0
        private void RecursiveDeleteDepartmentEmployers(List <Department> departmentlist, Department department, TestDBEntities db)
        {
            GlobalVars.Log.Info("MainForm: Рекурсивное удаление сотрудников из удаляемого отдела");
            foreach (var childDepartament in department.ChildDepartaments)
            {
                RecursiveDeleteDepartmentEmployers(departmentlist, childDepartament, db);
            }

            db.Empoyee.RemoveRange(db.Empoyee.Where(x => x.DepartmentID == department.ID));
            departmentlist.Add(department);
        }
Example #8
0
        private void Button_Save_Click(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("EmployeeInfoEdit: Сохранение информации о сотруднике");
            if (TextBox_FirstName.Text == "" ||
                TextBox_SurName.Text == "" ||
                TextBox_Position.Text == "" ||
                ComboBox_Department.SelectedIndex == -1)
            {
                MessageBox.Show("Не все обязательные поля заполнены!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (DateTimePicker_BirthDate.Value > DateTime.Now)
            {
                MessageBox.Show("Дата рождения не может быть больше текущей даты!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                try
                {
                    using (var db = new TestDBEntities())
                    {
                        var departments = db.Department.ToList();

                        if (_employeeId == -1)
                        {
                            db.Empoyee.Add(new Empoyee
                            {
                                FirstName    = TextBox_FirstName.Text,
                                SurName      = TextBox_SurName.Text,
                                Patronymic   = TextBox_Patronymic.Text,
                                DateOfBirth  = DateTimePicker_BirthDate.Value,
                                DocSeries    = TextBox_DocSeries.Text,
                                DocNumber    = TextBox_DocNumber.Text,
                                Position     = TextBox_Position.Text,
                                DepartmentID = departments[ComboBox_Department.SelectedIndex].ID
                            });
                        }
                        else
                        {
                            var employee = db.Empoyee.First(x => x.ID == _employeeId);
                            employee.FirstName    = TextBox_FirstName.Text;
                            employee.SurName      = TextBox_SurName.Text;
                            employee.Patronymic   = TextBox_Patronymic.Text;
                            employee.DateOfBirth  = DateTimePicker_BirthDate.Value;
                            employee.DocSeries    = TextBox_DocSeries.Text;
                            employee.DocNumber    = TextBox_DocNumber.Text;
                            employee.Position     = TextBox_Position.Text;
                            employee.DepartmentID = departments[ComboBox_Department.SelectedIndex].ID;
                        }

                        db.SaveChanges();
                    }

                    this.Close();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    GlobalVars.Log.Info(ex, "EmployeeInfoEdit: Ошибка при сохранении информации о сотруднике");
                    MessageBox.Show($"Возникла ошибка. Возможно некоторые поля заполнены неправильно.\n\n{ex.EntityValidationErrors.First().ValidationErrors.First().ErrorMessage}", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private void Button_Save_Click(object sender, EventArgs e)
        {
            GlobalVars.Log.Info("DepartmentInfoEditForm: Соранение информации об отделе.");
            if (MaskedTextBox_ID.Text == "" ||
                TextBox_Name.Text == "")
            {
                MessageBox.Show("Не все обязательные поля заполнены!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!Guid.TryParse(MaskedTextBox_ID.Text, out var res))
            {
                MessageBox.Show("Идентификатор введен неправильно!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (ComboBox_ParentDepartment.SelectedIndex == -1)
            {
                MessageBox.Show("Отдела, выбранного в качестве родительского, не существует!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                try
                {
                    using (var db = new TestDBEntities())
                    {
                        var departments = db.Department.ToList();

                        if (_departmentId == null)
                        {
                            var department = new Department
                            {
                                ID   = Guid.Parse(MaskedTextBox_ID.Text),
                                Code = TextBox_CodeName.Text,
                                Name = TextBox_Name.Text
                            };

                            if (ComboBox_ParentDepartment.SelectedIndex > 0)
                            {
                                department.ParentDepartmentID = departments[ComboBox_ParentDepartment.SelectedIndex - 1].ID;
                            }

                            db.Department.Add(department);
                        }
                        else
                        {
                            var department = db.Department.First(x => x.ID == _departmentId);
                            department.ID   = Guid.Parse(MaskedTextBox_ID.Text);
                            department.Code = TextBox_CodeName.Text;
                            department.Name = TextBox_Name.Text;

                            if (ComboBox_ParentDepartment.SelectedIndex > 0)
                            {
                                department.ParentDepartmentID = departments[ComboBox_ParentDepartment.SelectedIndex - 1].ID;
                            }
                            else
                            {
                                department.ParentDepartmentID = null;
                            }
                        }

                        db.SaveChanges();
                    }

                    this.Close();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    GlobalVars.Log.Error(ex, "DepartmentInfoEditForm: Ошибка при сохранении информации об отделе.");
                    MessageBox.Show($"Возникла ошибка. Возможно некоторые поля заполнены неправильно.\n\n{ex.EntityValidationErrors.First().ValidationErrors.First().ErrorMessage}", "Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }