/// <summary> /// Метод. Создает нового сотрудника на основе свободного человека и открывает диалоговое окно для его редактирования /// </summary> private void addByMenToolStripMenuItem_Click(object sender, EventArgs e) { IEmployee employee; // Сотрудник EmployeeForm employeeForm; // Форма редактирования сотрудника ManSelectForm manSelectForm; // Форма выбора человека DataGridViewRow selectedRow; // Выделенная строка int rowCount; // Общее количество сотрудников в списке int selectedRowIndex; // Индекс выделенной строки bool entityNeedSave; // Флаг необходимости сохранения сущности rowCount = entitiesDataGridView.Rows.Count; // Получить общее количество сотрудников в списке selectedRowIndex = 0; // Задать индекс выделенной строки if (rowCount > 0) // Проверить общее количество сотрудников { selectedRow = entitiesDataGridView.SelectedRows[0]; // Получить выделенную строку selectedRowIndex = selectedRow.Index; // Получить индекс выделенной строки } employee = _employees.Create(); // Создать сотрудника manSelectForm = new ManSelectForm( // Создать форму выбора человека _mans, null, ManSelectForm.ManSelectType.SelectForEmployee); manSelectForm.ShowDialog(); // Отобразить форму выбора человека employee.Man = manSelectForm.SelectedMan; // Связать человека с сотрудником if (employee.Man != null) // Проверить связанного с сотрудником человека { employeeForm = new EmployeeForm(employee, _mans); // Создать форму для редактирования сотрудника employeeForm.ShowDialog(); // Отобразить форму для редактирования сотрудника entityNeedSave = employeeForm.EntityNeedSave; // Получить значение флага необходимости сохранения сущности if (entityNeedSave == true) // Проверить флаг необходимости сохранения сущности { _employees.Add(employee); // Добавить созданного сотрудника в список } FillEntitiesDataGridView(); // Заполнить данными элемент отображения списка сущностей if (rowCount > 0) // Проверить общее количество сотрудников { SelectRow(selectedRowIndex); // Выделить строку } SetButtonActivity(); // Задать активность элементов управления } }
/// <summary> /// Метод. Открывает диалоговое окно для редактирования выделенного сотрудника /// </summary> private void editButton_Click(object sender, EventArgs e) { IEmployee employee; // Сотрудник EmployeeForm employeeForm; // Форма редактирования сотрудника DataGridViewRow selectedRow; // Выделенная строка int rowCount; // Общее количество строк в списке int selectedRowIndex; // Индекс выделенной строки int id; // Идентификатор выделенного сотрудника bool entityNeedSave; // Флаг необходимости сохранения сущности rowCount = entitiesDataGridView.Rows.Count; // Получить общее количество строк в списке if (rowCount > 0) // Проверить общее количество строк { selectedRow = entitiesDataGridView.SelectedRows[0]; // Получить выделенную строку selectedRowIndex = selectedRow.Index; // Получить индекс выделенной строки id = Convert.ToInt32(selectedRow.Cells["id"].Value); // Получить идентификатор сотрудника в выделенной строке employee = _employees.GetEmployee(id); // Получить выделенного сотрудника employeeForm = new EmployeeForm(employee, _mans); // Создать форму для редактирования сотрудника employeeForm.ShowDialog(); // Отобразить форму для редактирования сотрудника entityNeedSave = employeeForm.EntityNeedSave; // Получить значение флага необходимости сохранения сущности if (entityNeedSave == true) // Проверить флаг необходимости сохранения сущности { _employees.SaveChanges(); // Сохранить изменения списка сотрудников } FillEntitiesDataGridView(); // Заполнить данными элемент отображения списка сущностей SelectRow(selectedRowIndex); // Выделить строку } }