Exemplo n.º 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("Проверьте корректность введенных данных!");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Генерация товаров и разделов в количестве, которое указал пользователь.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void generateButton_Click(object sender, EventArgs e)
        {
            Random    random    = new Random();
            IStorable iStorable = (IStorable)_treeNode.Tag;

            int numberOfSections = (int)sectionNumericUpDown.Value;
            int numberOfProducts = (int)productNumericUpDown.Value;

            for (int i = 0; i < numberOfSections; i++)
            {
                SectionModel sectionModel =
                    SectionController.CreateSection(iStorable, random.Next().ToString(), 0);
                TreeNode treeNode = NodeController.CreateNode(_treeNode, sectionModel);

                for (int j = 0; j < numberOfProducts; j++)
                {
                    ProductModel productModel    = ProductController.CreateRandomProduct(sectionModel);
                    TreeNode     productTreeNode = NodeController.CreateNode(treeNode, productModel);
                    ProductController.AssignProductToNode(productModel, productTreeNode);
                }
            }

            this.Close();
        }