/// <summary> /// Кнопка для создания продукта или его изменения. /// Перед этим проверяется, чтобы все обязательные поля были заполнены. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void actionButton_Click(object sender, EventArgs e) { if (IsEveryTextBoxFilled()) { string name = nameTextBox.Text; string vendorCode = vendorTextBox.Text; string description = descriptionTextBox.Text ?? ""; double price = double.Parse(priceTextBox.Text); int balance = (int)balanceNumericUpDown.Value; string imagePath = _imagePath ?? ""; TreeNode rootNode = NodeController.GetTreeRoot(_treeNode); List <TreeNode> productNodes = NodeController.GetDeepestNodesByType(rootNode, typeof(ProductModel), new List <TreeNode>()); if (_isChanging) { if (!ProductController.CanUpdateProduct(productNodes, _productModel, vendorCode)) { MessageBox.Show("Товар с таким же артикулом уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } _treeNode.Text = name; ProductController.UpdateProduct(_productModel, name, vendorCode, description, price, balance, imagePath); } else { if (!ProductController.CanCreateProduct(productNodes, vendorCode)) { MessageBox.Show("Товар с таким же артикулом уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ProductModel productModel = ProductController.CreateProduct((SectionModel)_treeNode.Tag, name, vendorCode, description, price, balance, imagePath); _productModel = productModel; TreeNode treeNode = NodeController.CreateNode(_treeNode, productModel); ProductController.AssignProductToNode(productModel, treeNode); } this.Close(); } else { MessageBox.Show("Проверьте корректность введенных данных!"); } }
/// <summary> /// Получение всех продуктов данного склада и открытие формы. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void exportCSVToolStripMenu_Click(object sender, EventArgs e) { Dictionary <ProductModel, string> productModelsDictionary = new Dictionary <ProductModel, string>(); TreeNode selectedNode = treeView.SelectedNode; List <TreeNode> productNodes = NodeController.GetDeepestNodesByType(selectedNode, typeof(ProductModel), new List <TreeNode>()); foreach (TreeNode productNode in productNodes) { productModelsDictionary.Add((ProductModel)productNode.Tag, productNode.FullPath); } ExportForm exportForm = new ExportForm(productModelsDictionary) { Owner = this }; exportForm.ShowDialog(); }