using System.Collections.Generic;
string Username { get; set; }
string Password { get; set; }
string Name { get; set; }
double Price { get; set; }
public abstract void Display();
public string Username { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public double Price { get; set; }
static List<User> users = new List<User>();
static List<Product> products = new List<Product>();
static List<Order> orders = new List<Order>();
static void UserRegistration()
Console.WriteLine("User Registration");
Console.Write("Enter username: ");
string username = Console.ReadLine();
Console.Write("Enter password: ");
string password = Console.ReadLine();
users.Add(new User { Username = username, Password = password });
Console.WriteLine("User registered successfully!");
static void ProductRegistration()
Console.WriteLine("Canteen Menu Registration");
Console.WriteLine("Enter the items for the Canteen Menu:");
Dictionary<string, double> canteenItems = new Dictionary<string, double>
foreach (var item in canteenItems)
Console.WriteLine($"- {item.Key}: ₱{item.Value:F2}");
Console.WriteLine("Enter 'done' when finished.");
Console.Write("Enter item name or 'done': ");
string itemName = Console.ReadLine().Trim();
if (itemName.ToLower() == "done")
if (canteenItems.ContainsKey(itemName))
double itemPriceInPesos = canteenItems[itemName];
products.Add(new Product { Name = itemName, Price = itemPriceInPesos });
Console.WriteLine($"'{itemName}' added to the Canteen Menu.");
Console.WriteLine("Invalid item name. Please try again.");
Console.WriteLine("Canteen Menu updated successfully!");
Console.WriteLine("User Login");
Console.Write("Enter username: ");
string username = Console.ReadLine();
Console.Write("Enter password: ");
string password = Console.ReadLine();
foreach (User user in users)
if (user.Username == username && user.Password == password)
Console.WriteLine("Login successful!");
Console.WriteLine("Invalid username or password. Please try again.");
static void DisplayMenu()
Console.WriteLine("Main Menu");
Console.WriteLine("1. User Registration");
Console.WriteLine("2. Product Registration");
Console.WriteLine("3. User Login");
Console.WriteLine("4. Search Functionality");
Console.WriteLine("5. View Record(s)/Report(s)");
Console.WriteLine("6. Order");
Console.WriteLine("7. Exit");
Console.WriteLine("Canteen Menu with Prices in Peso:");
foreach (Product product in products)
Console.WriteLine($"{product.Name} - ₱{product.Price:F2}");
Console.WriteLine("Place your order:");
List<string> orderedItems = new List<string>();
Console.Write("Enter item name to order or 'done' to finish: ");
string itemName = Console.ReadLine().Trim();
if (itemName.ToLower() == "done")
Product orderedItem = products.Find(p => p.Name.ToLower() == itemName.ToLower());
total += orderedItem.Price;
orderedItems.Add(itemName);
Console.WriteLine($"'{itemName}' added to the order.");
Console.WriteLine($"'{itemName}' is not available in the menu.");
Console.WriteLine($"Total amount of your order: ₱{total:F2}");
SaveOrder(total, orderedItems);
static void SaveOrder(double totalAmount, List<string> orderedItems)
Order order = new Order { TotalAmount = totalAmount, OrderedItems = orderedItems };
Console.WriteLine("Order Saved:");
Console.WriteLine($"Total Amount: ₱{totalAmount:F2}");
Console.WriteLine("Ordered Items:");
foreach (string item in orderedItems)
static void Main(string[] args)
Console.Write("Enter your choice: ");
int choice = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Search Functionality - To be implemented");
Console.WriteLine("View Record(s)/Report(s) - To be implemented");
Console.WriteLine("Exiting program...");
Console.WriteLine("Invalid choice. Please try again.");
public double TotalAmount { get; set; }
public List<string> OrderedItems { get; set; }