Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        // закоментил для отладочных запусков
        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;
        }
Exemplo n.º 3
0
        // Инициализация формы
        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);
                }
            }
        }
Exemplo n.º 4
0
        // Для обеспечения работоспособности переименования объекта
        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);
                }
            }
        }
Exemplo n.º 5
0
        // Кнопка удаления элемента дерева
        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);
        }
Exemplo n.º 6
0
 // Метод построения дерева выбранного объекта в 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();
 }
Exemplo n.º 7
0
        // Метод добавляет к родительскому элементу дочерние. Определеяет картинки объекта.
        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;
        }
Exemplo n.º 8
0
        // Создает дочерний объект к выбранному объекту дерева
        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;
        }