private void delProdButton_Click(object sender, EventArgs e) { var delTarget = treeOfProduct.SelectedNode; using (var context = new ProductTrackerEntities()) { try { var delProd = context.product.First(product => product.name.Equals(delTarget.Text)); context.product.Remove(delProd); } catch (Exception ex) { MessageBox.Show(ex.Message); } } treeOfProduct.Nodes.Remove(delTarget); }
// закоментил для отладочных запусков public AdministrationWindows(/*User user*/) { InitializeComponent(); //_enteredUser = user; //userStatus.Text = Resources.AutorisationForm_Пользователь + user.Fio; createImageList(); specTree.ImageList = ImgList; // Добавляет изделия в список продуктов using (var context = new ProductTrackerEntities()) { try { var querytypeId = from prodType in context.productType where prodType.typeName == Resources.productType_Изделие select prodType.typeID; int typeId = 0; foreach (var id in querytypeId.Take(1)) { typeId = id; } var queryProdName = from prod in context.product where prod.typeID == typeId select prod.name; foreach (var prod in queryProdName) { productSelector.Items.Add(prod); } } catch (Exception e) { MessageBox.Show(e.Message); } } specTree.HideSelection = false; }
// Инициализация формы public AddObjInTree(TreeNode target) { InitializeComponent(); addTarget = target; // Добавдяет типы объектов дерева в выпадуху создания нового объекта using (var context = new ProductTrackerEntities()) { try { var query = from type in context.productType where type.rootType == 0 select type.typeName; foreach (var tname in query) { createTypeChose.Items.Add(tname); } } catch (Exception e) { MessageBox.Show(e.Message); } } }
// Для обеспечения работоспособности переименования объекта private void specTree_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { if (e.Label != null) { e.Node.EndEdit(false); } using (var context = new ProductTrackerEntities()) { try { var renameProduct = context.product.First(product => product.name == TargetNode.Text); if (renameProduct != null) { renameProduct.name = e.Label; /* renameProduct.id = renameProduct.id; renameProduct.productAttribute = renameProduct.productAttribute; renameProduct.productTree = renameProduct.productTree; renameProduct.productType = renameProduct.productType; renameProduct.typeID = renameProduct.typeID;*/ } context.SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
// Кнопка удаления элемента дерева private void deleteButton_Click(object sender, EventArgs e) { var delTarget = specTree.SelectedNode; if (delTarget == null) return; if (delTarget.Parent == null) { MessageBox.Show(Resources.AdministrationWindows_deleteButton_Click_Для_удаления_изделия_воспользуйтесь_меню_Журнал_изделий); return; } if (delTarget.Nodes.Count != 0) { var delForm = new DeleteFromTree(); DialogResult dr = delForm.ShowDialog(); if (dr == DialogResult.Cancel) return; } using (var context = new ProductTrackerEntities()) { try { var delProduct = context.product.First(product => product.name == delTarget.Text); if (delProduct.typeID.Equals(delTarget.Tag)) { var prodInTree = delProduct.productTree; context.productTree.Remove(prodInTree); context.SaveChanges(); context.product.Remove(delProduct); context.SaveChanges(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } specTree.Nodes.Remove(delTarget); }
// Метод построения дерева выбранного объекта в ComboBox public void ExpandTree() { using (var context = new ProductTrackerEntities()) { try { var idInTree = from prod in context.product where prod.name == productSelector.Text select prod.id; foreach (var id in idInTree.Take(1)) { ExpandProductTree(id, productSelector.Text); } } catch (Exception e) { MessageBox.Show(e.Message); } } specTree.CollapseAll(); }
// Метод добавляет к родительскому элементу дочерние. Определеяет картинки объекта. public TreeNode AddNodeChild(TreeNode parentNode, int parentId) { using (var context = new ProductTrackerEntities()) { try { var childList = from child in context.productTree where child.parentID == parentId select child.product; foreach (var child in childList) { var childNode = new TreeNode(child.name); switch (child.typeID) { case 2: childNode.ImageIndex = 0; childNode.SelectedImageIndex = 0; break; case 5: childNode.ImageIndex = 1; childNode.SelectedImageIndex = 1; break; case 6: childNode.ImageIndex = 2; childNode.SelectedImageIndex = 2; break; case 7: childNode.ImageIndex = 3; childNode.SelectedImageIndex = 3; break; default: childNode.ImageIndex = 4; childNode.SelectedImageIndex = 4; break; } childNode.Tag = child.typeID; childNode = AddNodeChild(childNode, child.id); parentNode.Nodes.Add(childNode); } } catch (Exception e) { MessageBox.Show(e.Message); } } return parentNode; }
// Создает дочерний объект к выбранному объекту дерева private void createButton_Click(object sender, EventArgs e) { if (createTypeChose.Text == String.Empty) { MessageBox.Show(Resources.AdministrationWindows_createNewButton_Click_Тип_элемента_не_выбран, Resources.error_operation_msg); return; } if (createNameBox.Text == String.Empty) { MessageBox.Show(Resources.AdministrationWindows_createNewButton_Click_Не_указано_имя_объекта, Resources.error_operation_msg); return; } var newProduct = new product(); using (var context = new ProductTrackerEntities()) { try { var query = from type in context.productType where type.typeName == createTypeChose.Text select type.typeID; foreach (var type in query.Take(1)) { newProduct.name = createNameBox.Text; newProduct.typeID = type; foreach (TreeNode node in addTarget.Nodes) { if (node.Text.Equals(createNameBox.Text) && node.Tag.Equals(newProduct.typeID)) { MessageBox.Show(Resources.AdministrationWindows_createNewButton_Click_Такой_элемент_уже_создан_в_структуре_); return; } } } context.product.Add(newProduct); context.SaveChanges(); var queryProd = from pr in context.product where pr.name == addTarget.Text select pr; var parent = new product(); foreach (var p in queryProd.Take(1)) { parent = p; } var pt = new productTree { productID = newProduct.id, parentID = parent.id, product = newProduct }; context.productTree.Add(pt); context.SaveChanges(); } catch (Exception mes) { MessageBox.Show(mes.Message); } } aw.ExpandTree(); Close(); AddProduct.Text = newProduct.name; AddProduct.Tag = newProduct.typeID; }