/// <summary> /// Метод. Создает новый комплекс на основе города и открывает диалоговое окно для его редактирования /// </summary> private void addByCityToolStripMenuItem_Click(object sender, EventArgs e) { IComplex complex; // Комплекс ComplexForm complexForm; // Форма редактирования комплекса CitySelectForm citySelectForm; // Форма выбора города DataGridViewRow selectedRow; // Выделенная строка int rowCount; // Общее количество комплексов в списке int selectedRowIndex; // Индекс выделенной строки bool entityNeedSave; // Флаг необходимости сохранения сущности rowCount = entitiesDataGridView.Rows.Count; // Получить общее количество комплексов в списке selectedRowIndex = 0; // Задать индекс выделенной строки if (rowCount > 0) // Проверить общее количество комплексов { selectedRow = entitiesDataGridView.SelectedRows[0]; // Получить выделенную строку selectedRowIndex = selectedRow.Index; // Получить индекс выделенной строки } complex = _complexes.Create(); // Создать комплекс citySelectForm = new CitySelectForm( // Создать форму выбора города _cities); citySelectForm.ShowDialog(); // Отобразить форму выбора города complex.City = citySelectForm.SelectedCity; // Связать город с комплексом if (complex.City != null) // Проверить связанный с комплексов город { complexForm = new ComplexForm(complex, _cities); // Создать форму для редактирования комплекса complexForm.ShowDialog(); // Отобразить форму для редактирования комплекса entityNeedSave = complexForm.EntityNeedSave; // Получить значение флага необходимости сохранения сущности if (entityNeedSave == true) // Проверить флаг необходимости сохранения сущности { _complexes.Add(complex); // Добавить созданный комплекс в список } FillEntitiesDataGridView(); // Заполнить данными элемент отображения списка сущностей if (rowCount > 0) // Проверить общее количество комплексов { SelectRow(selectedRowIndex); // Выделить строку } SetButtonActivity(); // Задать активность элементов управления } }
/// <summary> /// Метод. Открывает диалоговое окно для редактирования выделенного комплекса /// </summary> private void editButton_Click(object sender, EventArgs e) { IComplex complex; // Комплекс ComplexForm complexForm; // Форма редактирования комплекса 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); // Получить идентификатор комплекса в выделенной строке complex = _complexes.GetComplex(id); // Получить выделенный комплекс complexForm = new ComplexForm(complex, _cities); // Создать форму для редактирования комплекса complexForm.ShowDialog(); // Отобразить форму для редактирования комплекса entityNeedSave = complexForm.EntityNeedSave; // Получить значение флага необходимости сохранения сущности if (entityNeedSave == true) // Проверить флаг необходимости сохранения сущности { _cities.SaveChanges(); // Сохранить изменения списка комплексов } FillEntitiesDataGridView(); // Заполнить данными элемент отображения списка сущностей SelectRow(selectedRowIndex); // Выделить строку } }