private void Update_Click(object sender, RoutedEventArgs e)
        {
            string newName = UpdateNewNameTB.Text.Trim();
            string oldName = UpdateOldNameTB.Text.Trim();

            if (commander.IsInputInvalid(newName, "New name") || commander.IsInputInvalid(oldName, "Old name"))
            {
                MessageBox.Show("Empty or default value is invalid for updating");
                return;
            }
            if (commander.ExistsInDatabaseByNameCaseInsensitive(OSHome.DbSources.Categories, newName, out string found))
            {
                MessageBox.Show($"Category named {newName} already exists in database.");
                return;
            }
            if (!commander.ExistsInDatabaseByNameCaseSensitive(OSHome.DbSources.Categories, oldName))
            {
                MessageBox.Show($"Category named {oldName} doesn't exists in database.");
                return;
            }
            if (!commander.FinalAcceptancePrompt())
            {
                return;
            }
            Categories categoryToUpdate = new Categories();

            categoryToUpdate = db.Categories.Single(x => x.category_name == oldName);
            categoryToUpdate.category_name = newName;
            db.SaveChanges();
            categoriesDataGrid.Items.Refresh();
            UpdateNewNameTB.Text = "New name";
            UpdateOldNameTB.Text = "Old name";
            MessageBox.Show($"Successfully updated: {oldName} into: {newName}.");
        }
        private void Remove_Click(object sender, RoutedEventArgs e)
        {
            string value = RemoveNameTB.Text.Trim();

            if (commander.IsInputInvalid(value, "Producer name or ID"))
            {
                MessageBox.Show($"Input value is default or empty, type correct value.");
                return;
            }
            if (int.TryParse(value, out int parsedIntValue))
            {
                if (!commander.ExistsInDatabaseByID(OSHome.DbSources.Producers, parsedIntValue))
                {
                    MessageBox.Show($"Producer with ID: {parsedIntValue} doesn't exists in database.");
                    return;
                }
            }
            else
            {
                if (!commander.ExistsInDatabaseByNameCaseSensitive(OSHome.DbSources.Producers, value))
                {
                    MessageBox.Show($"Producer with name: {value} doesn't exists in database.");
                    return;
                }
            }
            if (parsedIntValue == 0)
            {
                int producerId = db.Producers.Single(x => x.producer_name == value).producer_id;
                if (commander.IsAssignedToEntity(OSHome.DbSources.Producers, producerId))
                {
                    MessageBox.Show($"Producer is already assigned to product, can't remove.");
                    return;
                }
                if (!commander.FinalAcceptancePrompt())
                {
                    return;
                }
                commander.RemoveFromDb(OSHome.DbSources.Producers, producerId);
            }
            else
            {
                if (commander.IsAssignedToEntity(OSHome.DbSources.Producers, parsedIntValue))
                {
                    MessageBox.Show($"Producer is already assigned to product, can't remove.");
                    return;
                }
                if (!commander.FinalAcceptancePrompt())
                {
                    return;
                }
                commander.RemoveFromDb(OSHome.DbSources.Producers, parsedIntValue);
            }
            MessageBox.Show("Producer successfully removed from database.");
            RemoveNameTB.Text = "Producer name or ID";
        }
コード例 #3
0
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            var cat  = db.Categories.SingleOrDefault(x => x.category_name == AddCategoriesCB.Text);
            var prod = db.Producers.SingleOrDefault(x => x.producer_name == AddProducersCB.Text);

            if (cat == null || prod == null)
            {
                MessageBox.Show("Choose correct category and producer");
                return;
            }
            if (commander.IsInputInvalid(AddNameTB.Text, "Product name"))
            {
                MessageBox.Show($"Product name must not be empty");
                return;
            }
            string integerPartS = AddPriceIntTB.Text.Trim();
            string decimalPartS = AddatePriceDecimalTB.Text.Trim();

            if (!int.TryParse(integerPartS, out int integerPart) || !int.TryParse(decimalPartS, out int decimalPart))
            {
                MessageBox.Show($"Invalid value of price.");
                return;
            }
            string concatPrice = integerPartS + "." + decimalPartS;

            if (!decimal.TryParse(concatPrice, out decimal newPrice))
            {
                MessageBox.Show($"Invalid price");
                return;
            }
            string productName = AddNameTB.Text;
            int    categoryId  = cat.category_id;
            int    producerId  = prod.producer_id;

            if (commander.ExistsInDatabaseByNameCaseSensitive(OSHome.DbSources.Products, productName))
            {
                Products existingProduct = db.Products.Single(x => x.product_name == productName);
                if (existingProduct.price == newPrice && existingProduct.category == categoryId && existingProduct.producer == producerId)
                {
                    MessageBox.Show($"Product with values:\nName: {productName} already exists. (ID = {existingProduct.product_id})");
                    return;
                }
            }
            Products newProduct = new Products();

            newProduct.product_name = productName;
            newProduct.category     = (short)categoryId;
            newProduct.producer     = (short)producerId;
            newProduct.price        = newPrice;
            db.Products.Add(newProduct);
            db.SaveChanges();
            if (category_nameComboBox.Text != string.Empty && newProduct.category == (category_nameComboBox.SelectedItem as Categories).category_id)
            {
                RefillProductsByCatList();
            }
            MessageBox.Show($"Successfully created new product:\nID: {newProduct.product_name}");
            AddCategoriesCB.SelectedIndex = 0;
            AddProducersCB.SelectedIndex  = 0;
            AddNameTB.Text            = "Product name";
            AddPriceIntTB.Text        = "Integer part";
            AddatePriceDecimalTB.Text = "Decimal part";
        }