using System.Collections.Generic;
public string Name { get; set; }
public decimal Price { get; set; }
public int StockQuantity { get; set; }
public Product(string name, decimal price, int stockQuantity)
StockQuantity = stockQuantity;
static List<Product> products = new List<Product>();
public static void Main()
Console.WriteLine("=====================================");
Console.WriteLine(" Inventory Management");
Console.WriteLine("=====================================");
Console.WriteLine("1. Add Product");
Console.WriteLine("2. Update Stock");
Console.WriteLine("3. View Products");
Console.WriteLine("4. Remove Product");
Console.WriteLine("5. Exit");
Console.Write("Please choose an option (1-5): ");
string userInput = Console.ReadLine();
Console.WriteLine("Exiting the application. Goodbye!");
Console.WriteLine("Invalid option. Please try again.\n");
Console.WriteLine("--- Add New Product ---");
Console.Write("\nEnter product name: ");
string name = Console.ReadLine() ?? "";
Console.Write("Enter price: $");
validPrice = decimal.TryParse(Console.ReadLine(), out price) && price >= 0;
Console.WriteLine("Invalid price. Please enter a non-negative number.");
bool validQuantity = false;
Console.Write("Enter initial stock quantity: ");
validQuantity = int.TryParse(Console.ReadLine(), out quantity) && quantity >= 0;
Console.WriteLine("Invalid quantity. Please enter a non-negative integer.");
Product newProduct = new Product(name, price, quantity);
products.Add(newProduct);
Console.WriteLine($"Product '{name}' added successfully!\n");
static void UpdateStock()
Console.WriteLine("--- Update Product Stock ---");
Console.WriteLine("No products available in inventory.\n");
Console.Write("Enter the Product Index (0-based) to update: ");
string indexInput = Console.ReadLine();
if (int.TryParse(indexInput, out index) && index >= 0 && index < products.Count)
Product productToUpdate = products[index];
Console.WriteLine($"Current stock for '{productToUpdate.Name}': {productToUpdate.StockQuantity}");
Console.Write("Enter new stock quantity: ");
string newStockInput = Console.ReadLine();
if (int.TryParse(newStockInput, out newStock) && newStock >= 0)
productToUpdate.StockQuantity = newStock;
Console.WriteLine($"Stock updated for '{productToUpdate.Name}'. New Stock: {productToUpdate.StockQuantity}\n");
Console.WriteLine("Invalid stock quantity.\n");
Console.WriteLine("Invalid product index.\n");
static void ViewProducts()
Console.WriteLine("--- View All Products ---");
Console.WriteLine("No products available in inventory.\n");
for (int i = 0; i < products.Count; i++)
Product product = products[i];
Console.WriteLine($"{i}. Name: {product.Name}, Price: {product.Price}, Stock: {product.StockQuantity}");
static void RemoveProduct()
Console.WriteLine("--- Remove Product ---");
Console.WriteLine("No products available in inventory.\n");
Console.Write("Enter the Product Index (0-based) to remove: ");
string indexInput = Console.ReadLine();
if (int.TryParse(indexInput, out index) && index >= 0 && index < products.Count)
string removedProductName = products[index].Name;
products.RemoveAt(index);
Console.WriteLine($"Product '{removedProductName}' removed successfully!\n");
Console.WriteLine("Invalid product index.\n");