private void removeMI_Click(object sender, RoutedEventArgs e) { using (var db = new DatabaseContext()) { try { if (treeView.SelectedItem == null) { MessageBox.Show("Предупреждение!\r\nУдаление невозможно: не выбран ни один узел в древовидном списке.", "Удаление типа параметра", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var id = Convert.ToInt64((treeView.SelectedItem as TreeViewItem).Tag); if (db.TypeParameters.Where(t => t.IdTypeParameterParent == id).Count() > 0) { MessageBox.Show("Предупреждение!\r\nДанный узел содержит дочерние узлы. Удалять можно только пустые узлы.", "Удаление типа параметра", MessageBoxButton.OK, MessageBoxImage.Warning); Logging.GetInstance().WriteInLog("Была предпринята попытка удаления типа параметра из базы данных."); return; } TypeParameter typeParameter = db.TypeParameters.Find(id); // возможно, в дальнейшем потребуется проверка parameter на null db.TypeParameters.Remove(typeParameter); db.SaveChanges(); TreeFiller.GetInstance().DeleteNode(ref treeView); Logging.GetInstance().WriteInLog("Успешное удаление типа параметра " + typeParameter.TypeParameterName + " из базы данных."); } catch (SqlException ex) { MessageBox.Show("Ошибка!\r\n" + ex.Message, "Подключение к базе данных", MessageBoxButton.OK, MessageBoxImage.Error); Logging.GetInstance().WriteInLog(ex.Message); Application.Current.Shutdown(); return; } catch (DbUpdateException) { MessageBox.Show("Предупреждение!\r\nДанный узел содержит параметры. Удалять можно только пустые узлы.", "Удаление типа параметра", MessageBoxButton.OK, MessageBoxImage.Warning); Logging.GetInstance().WriteInLog("Была предпринята попытка удаления типа параметра из базы данных."); return; } } }
private void addChildMI_Click(object sender, RoutedEventArgs e) { using (var db = new DatabaseContext()) { try { if (treeView.SelectedItem == null) { MessageBox.Show("Предупреждение!\r\nУдаление невозможно: не выбран ни один узел в древовидном списке.", "Удаление типа параметра", MessageBoxButton.OK, MessageBoxImage.Warning); return; } Editor editor = new Editor(this); if (editor.ShowDialog() != true) { return; } TypeParameter typeParameter = new TypeParameter { TypeParameterName = editor.TypeParameterName, IdTypeParameterParent = Convert.ToInt64((treeView.SelectedItem as TreeViewItem).Tag) }; db.TypeParameters.Add(typeParameter); db.SaveChanges(); TreeFiller.GetInstance().AddNode(ref treeView, typeParameter.TypeParameterName, typeParameter.IdTypeParameter.ToString(), (sender as MenuItem).Name); Logging.GetInstance().WriteInLog("Успешное добавление типа параметра " + typeParameter.TypeParameterName + " в базу данных."); } catch (SqlException ex) { MessageBox.Show("Ошибка!\r\n" + ex.Message, "Подключение к базе данных", MessageBoxButton.OK, MessageBoxImage.Error); Logging.GetInstance().WriteInLog(ex.Message); Application.Current.Shutdown(); return; } } }
private void changeMI_Click(object sender, RoutedEventArgs e) { using (var db = new DatabaseContext()) { try { if (treeView.SelectedItem == null) { MessageBox.Show("Предупреждение!\r\nПереименование невозможно: не выбран ни один узел в древовидном списке.", "Переименование типа параметра", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var id = Convert.ToInt64((treeView.SelectedItem as TreeViewItem).Tag); TypeParameter typeParameter = db.TypeParameters.Find(id); // возможно, в дальнейшем потребуется проверка parameter на null Editor editor = new Editor(this); editor.TypeParameterName = typeParameter.TypeParameterName; if (editor.ShowDialog() != true) { return; } typeParameter.TypeParameterName = editor.TypeParameterName; db.SaveChanges(); TreeFiller.GetInstance().RenameNode(ref treeView, editor.TypeParameterName); Logging.GetInstance().WriteInLog("Успешное переимнование типа параметра " + typeParameter.TypeParameterName + "."); } catch (SqlException ex) { MessageBox.Show("Ошибка!\r\n" + ex.Message, "Подключение к базе данных", MessageBoxButton.OK, MessageBoxImage.Error); Logging.GetInstance().WriteInLog(ex.Message); Application.Current.Shutdown(); return; } } }
private void addMI_Click(object sender, RoutedEventArgs e) { using (var db = new DatabaseContext()) { try { Editor editor = new Editor(this); if (editor.ShowDialog() != true) { return; } TypeParameter typeParameter = new TypeParameter { TypeParameterName = editor.TypeParameterName, IdTypeParameterParent = 0 }; db.TypeParameters.Add(typeParameter); db.SaveChanges(); TreeFiller.GetInstance().AddNode(ref treeView, typeParameter.TypeParameterName, typeParameter.IdTypeParameter.ToString(), (sender as MenuItem).Name); Logging.GetInstance().WriteInLog("Успешное добавление корневого типа параметра " + typeParameter.TypeParameterName + " в базу данных"); } catch (SqlException ex) { MessageBox.Show("Ошибка!\r\n" + ex.Message, "Подключение к базе данных", MessageBoxButton.OK, MessageBoxImage.Error); Logging.GetInstance().WriteInLog(ex.Message); Application.Current.Shutdown(); return; } } }
private long _tagId; // Поле класса для хранения значения IdTypeParameter из Tag узлов treeView public MainWindow() { InitializeComponent(); Logging.GetInstance().WriteInLog("Успешная инициализация программы."); TreeFiller.GetInstance().FillTree(ref treeView); }