private void NewTopLevelComponentButton_Click(object sender, EventArgs e) { string input = ""; var result = InputDialogs.String(ref input, "Введите имя компонента"); if (result == DialogResult.OK) { var repo = new ComponentsRepo(); var componentExists = repo.Components.Count(c => c.Name == input) > 0; if (componentExists) { MessageBox.Show("Компонент уже существует", "Ошибка"); } else { var newComponent = new Component { Name = input, IsTopLevel = true }; repo.Components.Add(newComponent); RefreshView(); } } }
private void RenameComponent_Click(object sender, EventArgs e) { var selectedNode = MainView.SelectedNode; if (selectedNode == null) { MessageBox.Show("Ни один компонент не выбран.", "Ошибка"); return; } var repo = new ComponentsRepo(); var selectedNodeId = (int)selectedNode.Tag; var selectedComponent = repo.Components .Find(c => c.Id == selectedNodeId); DialogResult result; bool componentNameExistsInDatabase; string input = ""; do { if (selectedComponent != null) { input = selectedComponent.Name; } result = InputDialogs.String(ref input, "Введите новое имя"); var componentByName = repo.Components. Find(c => c.Name == input); componentNameExistsInDatabase = (componentByName != null); if ((result == DialogResult.OK) && componentNameExistsInDatabase) { MessageBox.Show("Компонент с таким именем (" + componentByName.Name + "@" + componentByName.Id + ") уже существует в базе", "Ошибка"); } } while (result == DialogResult.OK && componentNameExistsInDatabase); if (result == DialogResult.OK) { if (selectedComponent != null) { selectedComponent.Name = input; repo.Components.Update(selectedComponent, selectedComponent.Id); } RefreshView(); } }