static void Main(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); string connString = config.GetConnectionString("DefaultConnection"); IDbConnection conn = new MySqlConnection(connString); ////Create a new Department //var repo = new DapperDepartmentRepository(conn); //Console.WriteLine("Type a new Department name"); //var newDepartment = Console.ReadLine(); //repo.InsertDepartment(newDepartment); //var departments = repo.GetAllDepartments(); //foreach (var department in departments) //{ // Console.WriteLine($"{department.DepartmentID} {department.Name}"); //} //Create a new product Console.WriteLine("Would you like to create a new product? (type 'nothing' if you have nothing to add)"); var repo2 = new DapperProductRepository(conn); var products = repo2.GetAllProducts(); var answer = Console.ReadLine(); if (answer == "nothing") { Console.WriteLine("thanks!"); } else { foreach (var item in products) { Console.WriteLine($"{item.CategoryID} {item.Name} {item.Price} {item.ProductID} {item.OnSale} {item.StockLevel}"); } Console.WriteLine("Type the new product name:"); var newProductName = Console.ReadLine(); Console.WriteLine("Type the new product price:"); var newProductPrice = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Type the new product category ID:"); var newProductCID = Convert.ToInt32(Console.ReadLine()); repo2.CreateProduct(newProductName, newProductPrice, newProductCID); products = repo2.GetAllProducts(); foreach (var item in products) { Console.WriteLine($"{item.CategoryID} {item.Name} {item.Price} {item.ProductID} {item.OnSale} {item.StockLevel}"); } } //Update an existing product: Console.WriteLine("Would you like to update an existing product? (type 'nothing' if you have nothing to update)"); answer = Console.ReadLine(); if (answer == "nothing") { Console.WriteLine("thanks!"); } else { products = repo2.GetAllProducts(); foreach (var item in products) { Console.WriteLine($"{item.CategoryID} {item.Name} {item.Price} {item.ProductID} {item.OnSale} {item.StockLevel}"); } Console.WriteLine("Type the name of the product you would like to update:"); var existingProductName = Console.ReadLine(); Console.WriteLine("Type the new product name:"); var newProductName = Console.ReadLine(); Console.WriteLine("Type the new product price:"); var newProductPrice = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Type the new product category ID:"); var newProductCID = Convert.ToInt32(Console.ReadLine()); repo2.UpdateProduct(existingProductName, newProductName, newProductPrice, newProductCID); products = repo2.GetAllProducts(); foreach (var item in products) { Console.WriteLine($"{item.CategoryID} {item.Name} {item.Price} {item.ProductID} {item.OnSale} {item.StockLevel}"); } } //Delete an existing product: Console.WriteLine("What would you like to delete? (type 'nothing' if you have nothing to delete)"); answer = Console.ReadLine(); if (answer == "nothing") { Console.WriteLine("thanks!"); } else { repo2.DeleteProduct(answer); //showing the reulting database products = repo2.GetAllProducts(); foreach (var item in products) { Console.WriteLine($"{item.CategoryID} {item.Name} {item.Price} {item.ProductID} {item.OnSale} {item.StockLevel}"); } } }
static void Main(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); IDbConnection conn = new MySqlConnection(config.GetConnectionString("DefaultConnection")); bool quit = false; do { Console.WriteLine("\nNew Department: D, New Product: P\n" + "Remove Department: X, Update Product: U\n" + "Quit: Q, Remove Product: R\n"); switch (Console.ReadLine().ToLower()) { case "d": { var repo = new DapperDepartmentRepository(conn); Console.WriteLine("Enter a new department name:"); var newDepartment = Console.ReadLine(); repo.InsertDepartment(newDepartment); Console.WriteLine(); foreach (var item in repo.GetAllDepartments()) { Console.WriteLine(item.Name); } } break; case "x": { var repo = new DapperDepartmentRepository(conn); foreach (var item in repo.GetAllDepartments()) { Console.WriteLine(item.Name); } Console.WriteLine("\nEnter name of Department to remove:"); string temp = Console.ReadLine(); if (null == repo.GetDepartment(temp)) { Console.WriteLine("Invalid Department Name"); continue; } Console.WriteLine($"Deleting {temp} department\n"); repo.DeleteDepartment(temp); foreach (var item in repo.GetAllDepartments()) { Console.WriteLine(item.Name); } } break; case "q": quit = true; break; case "p": { Console.WriteLine("Add a new product (category = \'Other\'):"); var otherName = Console.ReadLine(); Console.WriteLine("Price:"); var otherPrice = Double.Parse(Console.ReadLine()); var prodRepo = new DapperProductRepository(conn); prodRepo.CreateProduct(otherName, otherPrice, 10); Console.WriteLine($"\n\nFind new {otherName} at the bottom:"); foreach (var item in prodRepo.GetAllProducts()) { Console.WriteLine($"{item.Name}: ${item.Price}, ID {item.ProductID}"); } } break; case "u": { var prodRepo = new DapperProductRepository(conn); foreach (var item in prodRepo.GetAllProducts()) { Console.WriteLine($"{item.Name}: ${item.Price}, ID {item.ProductID}"); } Console.WriteLine("\nProduct ID to change:"); int changeProductID; if (Int32.TryParse(Console.ReadLine(), out changeProductID) == false) { Console.WriteLine("Invalid input"); continue; } var queryProduct = new Product(); queryProduct = prodRepo.GetProduct(changeProductID); if (queryProduct == null) { Console.WriteLine("Invalid ProductID"); continue; } Console.WriteLine($"New name (or just <Enter> to keep '{queryProduct.Name}'):"); var temp = Console.ReadLine(); var otherName = temp == "" ? queryProduct.Name : temp; Console.WriteLine($"New price (or just <Enter> to keep {queryProduct.Price}):"); temp = Console.ReadLine(); double otherPrice; if (temp == "") { otherPrice = queryProduct.Price; } else { otherPrice = double.Parse(temp); } prodRepo.UpdateProduct(otherName, otherPrice, changeProductID); Console.WriteLine($"{queryProduct.Name}: ${queryProduct.Price}, ID {changeProductID} changed to"); queryProduct = prodRepo.GetProduct(changeProductID); Console.WriteLine($"{queryProduct.Name}: ${queryProduct.Price}, ID {changeProductID}"); } break; case "r": { var prodRepo = new DapperProductRepository(conn); foreach (var item in prodRepo.GetAllProducts()) { Console.WriteLine($"{item.Name}: ${item.Price}, ID {item.ProductID}"); } Console.WriteLine("\nProduct ID to remove:"); int changeProductID; if (Int32.TryParse(Console.ReadLine(), out changeProductID) == false) { Console.WriteLine("Invalid input"); continue; } var queryProduct = new Product(); queryProduct = prodRepo.GetProduct(changeProductID); if (queryProduct == null) { Console.WriteLine("Invalid ProductID"); continue; } Console.WriteLine("Removing product:\n" + $"{queryProduct.Name}: ${queryProduct.Price}, ID {queryProduct.ProductID}\n"); prodRepo.RemoveProduct(changeProductID); var salesRepo = new DapperSalesRepository(conn); if (salesRepo.GetSalesItem(changeProductID).Count() != 0) { Console.WriteLine("Removing from Sales"); salesRepo.RemoveProduct(changeProductID); } else { Console.WriteLine("Not found in Sales"); } var reviewsRepo = new DapperReviewsRepository(conn); if (reviewsRepo.GetReviewItem(changeProductID).Count() != 0) { Console.WriteLine("Removing from Reviews"); reviewsRepo.RemoveProduct(changeProductID); } else { Console.WriteLine("Not found in Reviews"); } foreach (var item in prodRepo.GetAllProducts()) { Console.WriteLine($"{item.Name}: ${item.Price}, ID {item.ProductID}"); } } break; default: quit = true; break; } }while (quit == false); }
static void Main(string[] args) { #region Configuration var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); string connString = config.GetConnectionString("DefaultConnection"); //Console.WriteLine(connString); #endregion IDbConnection conn = new MySqlConnection(connString); var repo = new DapperDepartmentRepository(conn); //exercise 2 portion: var repo2 = new DapperProductRepository(conn); //bonus 1 update product var repo3 = new DapperProductRepository(conn); //bonus 2 extra delete products var repo4 = new DapperProductRepository(conn); Console.WriteLine("Type a new Department name"); var newDepartment = Console.ReadLine(); repo.InsertDepartment(newDepartment); Console.WriteLine("Type a new Product name"); var newProduct = Console.ReadLine(); Console.WriteLine("What is the price?"); var newPrice = Console.ReadLine(); Console.WriteLine("Give it a category ID"); var newCategoryID = Console.ReadLine(); repo2.CreateProduct(newProduct, double.Parse(newPrice), int.Parse(newCategoryID)); Console.WriteLine("What is the product ID of the item you want to change the name of?"); var productID = Console.ReadLine(); Console.WriteLine("What do you want to change the product name to?"); var updateName = Console.ReadLine(); repo3.UpdateProduct(int.Parse(productID), updateName); Console.WriteLine("What is the product ID you would like to delete?"); var deleteProduct = Console.ReadLine(); repo4.DeleteProduct(int.Parse(deleteProduct)); var departments = repo.GetAllDepartments(); foreach (var dept in departments) { Console.WriteLine(dept.Name); } var products = repo2.GetAllProducts(); foreach (var product in products) { Console.WriteLine(product.Name); Console.WriteLine(product.Price); Console.WriteLine(product.CategoryID); } var products2 = repo3.GetAllProducts(); foreach (var product in products2) { Console.WriteLine(product.Name); } var products3 = repo4.GetAllProducts(); foreach (var product in products3) { Console.WriteLine(product.Name); } }