static void Main(string[] args) { logger.Info("Start of Program"); int choice = 0; int cc = 0; int pc = 0; do { logger.Info("First Choice"); Console.WriteLine("1) Products"); Console.WriteLine("2) Categories"); choice = Convert.ToInt32(Console.ReadLine()); //Products if (choice == 1) { logger.Info("Enter product"); do { Console.WriteLine("1) Add Product"); Console.WriteLine("2) Edit Product"); Console.WriteLine("3) Display All Products"); Console.WriteLine("4) Display Specific Product"); pc = Convert.ToInt32(Console.ReadLine()); //Add Product if (pc == 1) { logger.Info("Add Product"); var db = new NorthwindContext(); Product product = InputProduct(db); } //Edit Specific Product else if (pc == 2) { logger.Info("Edit Product"); Console.WriteLine("Choose Profuct to edit"); var db = new NorthwindContext(); var product = GetProduct(db); if (product != null) { Product UpdatedProduct = InputProduct(db); if (UpdatedProduct != null) { UpdatedProduct.ProductID = product.ProductID; db.EditProduct(UpdatedProduct); } } } //Display all records else if (pc == 3) { logger.Info("Display products"); int prod; do { Console.WriteLine("1) All Products"); Console.WriteLine("2) All Discontinued Products"); Console.WriteLine("3) All Active Products"); prod = Convert.ToInt16(Console.ReadLine()); //All Products if (prod == 1) { logger.Info("Display all products"); var db = new NorthwindContext(); var query = db.Products.OrderBy(p => p.ProductID); foreach (var item in query) { Console.WriteLine($"{item.ProductID}, {item.ProductName}"); } } //discontinued Products else if (prod == 2) { logger.Info("Display discounted products"); var db = new NorthwindContext(); var query = db.Products.OrderBy(p => p.Discontinued == true); Console.WriteLine("Discontinued Products"); foreach (var item in query) { Console.WriteLine($"{item.ProductName}"); } } // Active Products else if (prod == 3) { logger.Info("Display activate products"); var db = new NorthwindContext(); var query = db.Products.OrderBy(p => p.Discontinued == false); Console.WriteLine("Activate Products"); foreach (var item in query) { Console.WriteLine($"{item.ProductName}"); } } } while (prod != 4); } } while (pc == 4); } //Categories else if (choice == 2) { do { logger.Info("Display Category"); Console.WriteLine("1) Display Categories"); Console.WriteLine("2) Add Category"); Console.WriteLine("3) Display Categorie and items in list"); Console.WriteLine("4) Display all Categories and items in their list"); Console.WriteLine("5) Edit Category"); cc = Convert.ToInt32(Console.ReadLine()); //Display all categories if (cc == 1) { logger.Info("Display all Category"); var db = new NorthwindContext(); var query = db.Categories.OrderBy(p => p.CategoryName); Console.WriteLine($"{query.Count()} records returned"); foreach (var item in query) { Console.WriteLine($"{item.CategoryName} - {item.Description}"); } } //Add Categories else if (cc == 2) { logger.Info("add Category"); var db = new NorthwindContext(); Category category = InputCategory(db); } //Display Categorie and iteims in list else if (cc == 3) { logger.Info("Display Category and Items"); var db = new NorthwindContext(); var query = db.Categories.OrderBy(p => p.CategoryId); Console.WriteLine("Select the category whose products you want to display:"); foreach (var item in query) { Console.WriteLine($"{item.CategoryId}) {item.CategoryName}"); } int id = int.Parse(Console.ReadLine()); Console.Clear(); logger.Info($"CategoryId {id} selected"); Category category = db.Categories.FirstOrDefault(c => c.CategoryId == id); Console.WriteLine($"{category.CategoryName} - {category.Description}"); foreach (Product p in category.Products) { Console.WriteLine(p.ProductName); } } //Display all Categories else if (cc == 4) { var db = new NorthwindContext(); var query = db.Categories.Include("Products").OrderBy(p => p.CategoryId); foreach (var item in query) { Console.WriteLine($"{item.CategoryName}"); foreach (Product p in item.Products) { Console.WriteLine($"\t{p.ProductName}"); } } } //Edit Category else if (cc == 5) { logger.Info("Edit Category"); Console.WriteLine("Choose Category to edit"); var db = new NorthwindContext(); var cat = GetCategory(db); if (cat != null) { Category UpdatedCategory = InputCategory(db); if (UpdatedCategory != null) { UpdatedCategory.CategoryId = cat.CategoryId; db.EditCatagory(UpdatedCategory); } } } } while (cc != 5); } } while (choice != 6); }