/// <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("Проверьте корректность введенных данных!"); } }