コード例 #1
0
        private void AddNewOrder(ItemOfMenu itemOrder, Table tableOrder, int numberUnit)
        {
            Order       newestOrder   = new Order(tableOrder);
            ItemOrdered tempItemOrder = new ItemOrdered(itemOrder, numberUnit);

            newestOrder.OrderDetail.Add(tempItemOrder);
            _shopOrder.OrderHistoryOfShop.ListOrders.Add(newestOrder);
        }
コード例 #2
0
ファイル: ShopServices.cs プロジェクト: NhatTan2007/FILE_IO
 public void OrderDrinksOrFoods(ItemOfMenu itemOrder, Table tableOrder, int numberUnit = 1)
 {
     if (!tableOrder.IsUsed)
     {
         _tableServicesShop.ChangeTableStatus(tableOrder);
     }
     _orderServicesShop.OrderDrinksOrFoods(itemOrder, tableOrder, numberUnit);
     FileJsonServices.WriteFileJson(_myShop.OrderHistoryOfShop, FilePath.StrOrderHistoryFileFullPath);
 }
コード例 #3
0
        public void OrderDrinksOrFoods(ItemOfMenu itemOrder, Table tableOrder, int numberUnit = 1)
        {
            int indexOrder = LastIndexOrderOfTable(tableOrder.TableNumber);

            if (indexOrder != -1)
            {
                Order newestOrder = _shopOrder.OrderHistoryOfShop.ListOrders[indexOrder];
                if (!newestOrder.IsPaid)
                {
                    string choice = string.Empty;
                    do
                    {
                        Console.Write($"Table {tableOrder.TableNumber} is using. Do you want to add more {itemOrder.Name} to this table? (Y/N): ");
                        choice = Console.ReadLine().Trim();
                    } while (choice == "" || (choice != "Y" && choice != "y" && choice != "N" && choice != "N"));
                    if (choice == "N" || choice == "n")
                    {
                        return;
                    }
                    int index = IsItemExistsInOrderDetail(newestOrder, itemOrder.Name);
                    if (index != -1)
                    {
                        newestOrder.OrderDetail[index].Quantity += numberUnit;
                    }
                    else
                    {
                        ItemOrdered tempItemOrder = new ItemOrdered(itemOrder, numberUnit);
                        newestOrder.OrderDetail.Add(tempItemOrder);
                    }
                }
                else
                {
                    AddNewOrder(itemOrder, tableOrder, numberUnit);
                }
            }
            else
            {
                AddNewOrder(itemOrder, tableOrder, numberUnit);
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: NhatTan2007/FILE_IO
        static void Main(string[] args)
        {
            int          yourChoice = 0;
            bool         checkInput;
            Shop         coffeShop         = new Shop();
            ShopServices coffeShopServices = new ShopServices(ref coffeShop);

            while (true)
            {
backToMainMenu:
                MenuProgramServices.DisplayMainMenu();
                do
                {
                    Console.Write("Your option: ");
                    checkInput = ConvertServices.ToIntByTryParse(Console.ReadLine(), out yourChoice);
                } while (!checkInput || yourChoice <= 0 || yourChoice > 6);
                switch (yourChoice)
                {
                    #region Add more tables
                case 1:
                    int numberTableToCreate;
                    Console.WriteLine($"Shop now have {coffeShop.ListTables.Count} tables (maximum is 50)");
                    do
                    {
                        Console.Write("Please enter number of tables you want to add(max 20): ");
                        checkInput = ConvertServices.ToIntByTryParse(Console.ReadLine(), out numberTableToCreate);
                    } while (!checkInput || numberTableToCreate < 0 || numberTableToCreate > 20);
                    if (numberTableToCreate + coffeShop.ListTables.Count > 50)
                    {
                        Console.WriteLine("Your shop can't have to much tables");
                        goto backToMainMenu;     //Back to main menu
                    }
                    coffeShopServices.AddMoreTable(numberTableToCreate);
                    break;

                    #endregion
                    #region Add Item to Menu of Shop
                case 2:
backToMenuAddItem:
                    MenuProgramServices.DisplayMenuCreateItem();
                    do
                    {
                        Console.Write("Your Option: ");
                        checkInput = ConvertServices.ToIntByTryParse(Console.ReadLine(), out yourChoice);
                    } while (!checkInput || yourChoice <= 0 || yourChoice > 3);
                    if (yourChoice == 3)
                    {
                        goto backToMenuAddItem;
                    }
                    coffeShopServices.AddItemToMenuShop();
                    string choiceContinue = string.Empty;
                    do
                    {
                        Console.Write("Do you want add more item? (Y/N): ");
                        choiceContinue = Console.ReadLine().Trim();
                    } while (choiceContinue != "Y" && choiceContinue != "y" && choiceContinue != "Y" && choiceContinue != "n");
                    if (choiceContinue == "Y" || choiceContinue == "y")
                    {
                        goto backToMenuAddItem;
                    }
                    break;

                    #endregion
                    #region Order
                case 3:
                    if (coffeShopServices.CanMakeOrder())
                    {
                        Console.WriteLine("Shop have no table or menu is empty to order");
                        goto backToMainMenu;
                    }
                    else
                    {
                        coffeShopServices.DisplayProductsMenu();
                        int id, qty, tableNumber;
                        if (!coffeShopServices.InputDataOrder(out id, out qty, out tableNumber))
                        {
                            goto backToMainMenu;
                        }
                        ItemOfMenu itemOrder  = null;
                        Table      tableOrder = null;
                        if (coffeShopServices.GetItemById(id) != null)
                        {
                            itemOrder = coffeShopServices.GetItemById(id);
                        }
                        if (coffeShopServices.GetTable(tableNumber) != null)
                        {
                            tableOrder = coffeShopServices.GetTable(tableNumber);
                        }
                        if (itemOrder != null && tableOrder != null)
                        {
                            coffeShopServices.OrderDrinksOrFoods(itemOrder, tableOrder, qty);
                            Console.Write("Your order has success\n");
                        }
                        else
                        {
                            Console.WriteLine("Please check again your input");
                        }
                    }
                    break;

                    #endregion
                    #region Create Payment
                case 4:
                    int tableNumberCheckout = -1;
                    Console.WriteLine("Enter 0 for back to main Program");
                    do
                    {
                        Console.Write("Please enter table number to create payment: ");
                        checkInput = ConvertServices.ToIntByTryParse(Console.ReadLine(), out tableNumberCheckout);
                    } while (!checkInput);
                    if (tableNumberCheckout == 0)
                    {
                        goto backToMainMenu;
                    }
                    coffeShopServices.CreateBill(tableNumberCheckout);
                    coffeShopServices.ChangeTableStatus(tableNumberCheckout);
                    break;

                    #endregion
                case 5:
                    coffeShopServices.ShowTablesFree();
                    break;

                case 6:
                    Environment.Exit(0);
                    break;
                }
            }
        }