0

I have a key pressed function that reacts on D1 to D0 i guess.

and depending on what key i press, it jumps to the switch case.

Looks like this :

static void Main(string[] args)
        {
            const ConsoleKey showProductsKey = ConsoleKey.D1;
            const ConsoleKey createProductKey = ConsoleKey.D2;
            const ConsoleKey updateProductKey = ConsoleKey.D3;
            const ConsoleKey deleteProductKey = ConsoleKey.D4;

            const ConsoleKey showCategoriesKey = ConsoleKey.D5;
            const ConsoleKey createCategoryKey = ConsoleKey.D6;
            const ConsoleKey updateCategoryKey = ConsoleKey.D7;
            const ConsoleKey deleteCategoryKey = ConsoleKey.D8;

            while (true)
            {
                Console.WriteLine("Press 1 : Show Products");
                Console.WriteLine("Press 2 : Create Product");
                Console.WriteLine("Press 3 : Update Product");
                Console.WriteLine("Press 4 : Delete Product\n");

                Console.WriteLine("Press 5 : Show Categories");
                Console.WriteLine("Press 6 : Create Category");
                Console.WriteLine("Press 7 : Update Category");
                Console.WriteLine("Press 8 : Delete Category\n\n");

                ConsoleKey pressedKey = PressedKey();

                switch (pressedKey)
                {
                    //-------------------------- PRODUCTS -----------------------------------------//
                    case showProductsKey:
                        Database.ShowProducts();
                        Console.WriteLine("\n");
                        break;

                    case createProductKey:
                        Console.Write("Indtast Produktnavn: ");
                        string createproductname = Console.ReadLine();
                        Console.Write("Hvor mange er der på lager?: ");
                        int createproductstock = int.Parse(Console.ReadLine());
                        Console.Write("Hvilken kategori ID hører produktet til?: ");
                        int createproductcategoryid = int.Parse(Console.ReadLine());
                        Console.Write("Hvilket medarbejder ID har oprettet produktet?: ");
                        int createproductemployeeid = int.Parse(Console.ReadLine());
                        try
                        {
                            Database.CreateProduct(createproductname, createproductstock, createproductcategoryid, createproductemployeeid);
                            Console.WriteLine("\n" + createproductname + " Oprettet med success!\n\n");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    break;

                    case updateProductKey:
                        Console.Write("Hvilket produkt ID vil du redigere?: ");
                        string updateproductid = Console.ReadLine();
                        Console.Write("Indtast nyt Produktnavn: ");
                        string updateproductname = Console.ReadLine();
                        Console.Write("Hvor mange er der på lager?: ");
                        int updateproductstock = int.Parse(Console.ReadLine());
                        Console.Write("Hvilken kategori ID hører produktet til?: ");
                        int updateproductcategoryid = int.Parse(Console.ReadLine());
                        Console.Write("Hvilket medarbejder ID har rettet produktet?: ");
                        int updateproductemployeeid = int.Parse(Console.ReadLine());
                        try
                        {
                            Database.UpdateProduct(updateproductname, updateproductstock, updateproductcategoryid, updateproductemployeeid, updateproductid);
                            Console.WriteLine("\n" + updateproductname + " Opdateret med success!\n\n");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;

                    case deleteProductKey:
                        Console.Write("Hvilket produkt ID vil du slette?: ");
                        string deleteproduct = Console.ReadLine();
                        Database.DeleteProduct(deleteproduct);
                        Console.WriteLine("\n" + "ID: " + deleteproduct + " Slettet med success!\n\n");
                        break;

                    //-------------------------- CATEGORIES -----------------------------------------//
                    case showCategoriesKey:
                        Database.ShowCategories();
                        Console.WriteLine("\n");
                        break;

                    case createCategoryKey:
                        Console.Write("Indtast kategorinavn: ");
                        string createcategoryname = Console.ReadLine();
                        try
                        {
                            Database.CreateCategory(createcategoryname);
                            Console.WriteLine("\n" + createcategoryname + " Oprettet med success!\n\n");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;

                    case updateCategoryKey:
                        Console.Write("Hvilket produkt ID vil du redigere?: ");
                        string updatecategoryid = Console.ReadLine();
                        Console.Write("Indtast nyt kategorinavn: ");
                        string updatecategoryname = Console.ReadLine();
                        try
                        {
                            Database.UpdateCategory(updatecategoryname, updatecategoryid);
                            Console.WriteLine("\n" + updatecategoryname + " Opdateret med success!\n\n");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;

                    case deleteCategoryKey:
                        Console.Write("Hvilket kategori ID vil du slette?: ");
                        string deletecategory = Console.ReadLine();
                        Database.DeleteCategory(deletecategory);
                        Console.WriteLine("\n" + "ID: " + deletecategory + " Slettet med success!\n\n");
                        break;
                }
            }

            ConsoleKey PressedKey()
            {
                do
                {
                    while (!Console.KeyAvailable);
                    ConsoleKey pressed = Console.ReadKey(true).Key;
                    if (pressed == showProductsKey || pressed == createProductKey || pressed == updateProductKey || pressed == deleteProductKey ||
                         pressed == showCategoriesKey || pressed == createCategoryKey || pressed == updateCategoryKey || pressed == deleteCategoryKey)
                        return pressed;
                    Console.Clear();
                } while (true);
            }
        }

But i am gonna need much more funktions in this program, is there a way to split them up? i was thinking if i want to go to products, click D1. and then i get the menu showing

const ConsoleKey showProductsKey = ConsoleKey.D1;
const ConsoleKey createProductKey = ConsoleKey.D2;
const ConsoleKey updateProductKey = ConsoleKey.D3;
const ConsoleKey deleteProductKey = ConsoleKey.D4;

i have tried to make an if saying if ConsoleKey.D1 == true and much others.. i am not sure what would be the correct / smartest way.

But in my mind, i had figured i would like 1 menu, saying press 1 for products menu press 2 for categories menu press 3 for employees menu ect..

and when clicking one of them : press 1 to list products press 2 to create product press 3 to edit product press 4 to delete product

something like that would be pretty swell? i am amateur programmer trying to learn C# by making some kind of a warehouse console app.

sticky bit
  • 36,626
  • 12
  • 31
  • 42
  • 1
    Is that can help you? [How to implement a console menu having submenus in C#](https://stackoverflow.com/questions/58760184/how-to-implement-a-console-menu-having-submenus-in-c-sharp) –  Sep 20 '20 at 18:45
  • Yhank you. very interresting ! i will read this :) –  Sep 20 '20 at 19:01
  • 1
    It doesn't answer your question directly, but if you want to make a complex console app, try reading my answer to this question: https://stackoverflow.com/questions/52431607/exit-console-app-at-any-time-during-any-input-c – Flydog57 Sep 21 '20 at 00:02
  • Ah.. flydog57 i am not sure thats what i am looking for. thanks tho –  Sep 21 '20 at 11:49

0 Answers0