/// <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 actionStorageButton_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(nameTextBox.Text)) { MessageBox.Show("Введите имя склада!"); return; } if (_isChanging) { _treeNode.Text = nameTextBox.Text; StorageController.UpdateStorage(_storageModel, nameTextBox.Text); } else { StorageModel storageModel = StorageController.CreateStorage(nameTextBox.Text); NodeController.CreateNode(_treeView, storageModel); } this.Close(); }
/// <summary> /// Создание нового раздела или изменение данного. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void actionButton_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(nameTextBox.Text)) { MessageBox.Show("Введите имя раздела!"); return; } string name = nameTextBox.Text; int sortIndex = (int)sortIndexNumericUpDown.Value; if (_isChanging) { if (!SectionController.CanUpdateSection((IStorable)_treeNode.Parent.Tag, _sectionModel, name)) { MessageBox.Show("Раздел с таким же именем уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } SectionController.UpdateSection(_sectionModel, name, sortIndex); _treeNode.Text = nameTextBox.Text; } else { if (!SectionController.CanCreateSection((IStorable)_treeNode.Tag, name)) { MessageBox.Show("Раздел с таким же именем уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } SectionModel sectionModel = SectionController.CreateSection((IStorable)_treeNode.Tag, name, sortIndex); NodeController.CreateNode(_treeNode, sectionModel); } this.Close(); }
/// <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(); }