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