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"; }
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"; }