Exemplo n.º 1
0
        static void Main(string[] args)
        {
            MenuActionService           actionService   = new MenuActionService();
            IItemService <Item>         itemService     = new ItemService();
            ICategoryService <Category> categoryService = new CategoryService();
            MealService     mealService     = new MealService();
            DayService      dayService      = new DayService();
            ItemManager     itemManager     = new ItemManager(categoryService, itemService);
            CategoryManager categoryManager = new CategoryManager(categoryService, itemService);
            MealManager     mealManager     = new MealManager(mealService);
            DayManager      dayManager      = new DayManager(actionService, dayService, mealService);

            Console.WriteLine("Welcome to CountItApp!");

            bool exitApp;

            do
            {
                Console.WriteLine("What You want to do:");
                var mainMenu = actionService.GetMenuActrionsByMenuName("MainMenu");
                foreach (var item in mainMenu)
                {
                    Console.WriteLine($"{item.Id}. {item.Name}");
                }
                exitApp = false;
                var  operation = Console.ReadKey();
                bool isBackButtonPressed;
                switch (operation.KeyChar)
                {
                case '1':
                    do
                    {
                        var keyInfo = categoryManager.CategoryServiceView(actionService);
                        isBackButtonPressed = false;
                        switch (keyInfo.KeyChar)
                        {
                        case '1':
                            categoryManager.AddNewCategory();
                            break;

                        case '2':
                            itemManager.AddNewItem(categoryManager);
                            break;

                        case '3':
                            itemManager.SignProductToCategory(categoryManager);
                            break;

                        case '4':
                            categoryManager.DeleteCategory();
                            break;

                        case '5':
                            itemManager.DeleteProduct();
                            break;

                        case '6':
                            categoryManager.WievAllCategories();
                            break;

                        case '7':
                            itemManager.ShowAllProducts();
                            break;

                        case '8':
                            Console.Clear();
                            itemManager.ShowAllProductsFromChoosenCategory(categoryManager);
                            break;

                        case '9':
                            isBackButtonPressed = true;
                            break;

                        default:
                            Console.WriteLine("Please choose right operation!");
                            break;
                        }
                    }while (!isBackButtonPressed);
                    break;

                case '2':
                    do
                    {
                        var keyInfo = dayManager.AddNewDayView();
                        isBackButtonPressed = false;
                        switch (keyInfo.KeyChar)
                        {
                        case '1':
                            dayManager.AddNewDay();
                            break;

                        case '2':
                            dayManager.AddNewMeal();
                            break;

                        case '3':
                            dayManager.AddProductToMeal(itemManager);
                            break;

                        case '4':
                            dayManager.RemoveProductFromMeal(mealManager);
                            break;

                        case '5':
                            dayManager.DeleteDay();
                            break;

                        case '6':
                            dayManager.DeleteMeal();
                            break;

                        case '7':
                            dayManager.ShowDayMacro();
                            break;

                        case '8':
                            dayManager.ShowMealMacro();
                            break;

                        case '9':
                            dayManager.ShowAllDays();
                            break;

                        case '0':
                            dayManager.ShowAllDays();
                            isBackButtonPressed = true;
                            break;

                        default:
                            Console.WriteLine("Please choose right operation!");
                            break;
                        }
                    }while (!isBackButtonPressed);
                    break;

                case '3':
                    exitApp = true;
                    break;

                case '4':
                    //categoryManager.AddNewCategoryMixed();
                    //itemManager.AddNewItemMixed(categoryService, itemService);
                    //itemManager.SignProductToCategoryMixed(categoryService, itemService);
                    //dayManager.AddNewDayMixed();
                    //dayManager.AddNewMealMixed(mealManager, itemManager, dayService);
                    //dayManager.AddProductsToMealsMixed(mealManager, itemManager, itemService);
                    break;

                default:
                    Console.WriteLine("Please choose right operation!");
                    break;
                }
            }while (!exitApp);
        }