コード例 #1
0
 public void Run()
 {
     while (true)
     {
         Console.WriteLine("Welcome to the FridgeSimulator! Press \n" +
                           " 1) to create a new fridge\n" +
                           " 2) to use a fridge\n" +
                           " 3) to list all food on the table\n" +
                           " 4) to list all available fridges\n" +
                           " 5) to list all shelfes \n" +
                           " 6) to delete a fridge \n" +
                           " 7) to save\n" +
                           " 8) to load previous\n" +
                           " 9) to check consumed calories\n" +
                           "10) to eat food from table\n" +
                           "11) to throw out food from table\n" +
                           "12) to throw out a shelf\n" +
                           " 0) to exit");
         var ans = Console.ReadLine();
         if (ans == "1")
         {
             Console.Clear();
             try
             {
                 var newFridge = AddRefig();
                 Console.WriteLine($"You have created a new {newFridge.fridgeSize} fridge it has {newFridge.shelfContainer.Length} shelves, {newFridge.shelfContainer[0].Capacity} unit free space each!");
             }
             catch (FridgeAlreadyExistsException)
             {
                 Console.WriteLine("Please choose an uniqe name for your fridge!");
             }
         }
         else if (ans == "2")
         {
             Console.Clear();
             try
             {
                 if (Refigrigators.Count > 0)
                 {
                     Console.WriteLine("Which Fridge you want to use?");
                     var fridgeName = Console.ReadLine();
                     var refig      = mh.FindFrifgeByName(fridgeName, Refigrigators);
                     inFridge = true;
                     Console.Clear();
                     while (inFridge)
                     {
                         FridgeMenuLogic(refig, FridgeMenu(refig));
                     }
                 }
                 Console.WriteLine("You have no fridge yet!");
             }
             catch (NoSuchRefigrigatorException)
             {
                 Console.WriteLine("There is no Fridge called like that!");
             }
         }
         else if (ans == "3")
         {
             Console.Clear();
             if (Foods.Count > 0)
             {
                 foreach (var food in Foods)
                 {
                     if (food.Size > 80)
                     {
                         Console.WriteLine($"{food.Name} it's a big item!");
                     }
                     else
                     {
                         Console.WriteLine(food.Name);
                     }
                 }
             }
             else
             {
                 Console.WriteLine("There are no foods on the table!");
             }
         }
         else if (ans == "4")
         {
             Console.Clear();
             if (Refigrigators.Count > 0)
             {
                 foreach (var fridge in Refigrigators)
                 {
                     Console.WriteLine(fridge.Name);
                 }
             }
             else
             {
                 Console.WriteLine("There are no fridges yet!");
             }
         }
         else if (ans == "5")
         {
             Console.Clear();
             if (Shelves.Count > 0)
             {
                 foreach (var shelf in Shelves)
                 {
                     Console.WriteLine($"The ID of the shelf: {shelf.ID}, the size is: {shelf.ShelfSize}  ");
                 }
             }
             else
             {
                 Console.WriteLine("No shelves outside of the fridge!");
             }
         }
         else if (ans == "6")
         {
             Console.Clear();
             try
             {
                 if (Refigrigators.Count > 0)
                 {
                     Console.WriteLine("Which Fridge you want to remove?");
                     var fridgeName = Console.ReadLine();
                     var refig      = mh.FindFrifgeByName(fridgeName, Refigrigators);
                     Refigrigators.Remove(refig);
                     Console.WriteLine($"The {fridgeName} has been removed!");
                 }
                 else
                 {
                     Console.WriteLine("You have no fridge yet!");
                 }
             }
             catch (NoSuchRefigrigatorException)
             {
                 Console.WriteLine("There is no Fridge called like that!");
             }
         }
         else if (ans == "7")
         {
             Console.Clear();
             //save
             logger.Save(Refigrigators);
             if (Shelves.Count > 0)
             {
                 logger.SaveShelf(Shelves, "shelfInventory.xml");
             }
             if (Foods.Count > 0)
             {
                 logger.SaveFood(Foods, "foodInventory.xml");
             }
             Console.WriteLine("We saved your work!");
         }
         else if (ans == "8")
         {
             //Load
             Console.Clear();
             try
             {
                 Refigrigators = logger.Load("Inventory.xml");
                 if (File.Exists("shelfInventory.xml"))
                 {
                     Shelves = logger.LoadShelf("shelfInventory.xml");
                 }
                 if (File.Exists("foodInventory.xml"))
                 {
                     Foods = logger.LoadFood("foodInventory.xml");
                 }
                 Console.WriteLine("We loaded your previous simulation");
             }
             catch (System.IO.FileNotFoundException)
             {
                 Console.WriteLine("No previous save!");
             }
         }
         else if (ans == "9")
         {
             Console.Clear();
             Console.WriteLine($"You consumed {consumedCalories} calories");
         }
         else if (ans == "10")
         {
             Console.Clear();
             try
             {
                 if (Foods.Count > 0)
                 {
                     Console.WriteLine("What you want to eat?");
                     var foodToEatFromTable = Console.ReadLine();
                     consumedCalories += mh.ConsumFoodFromTable(Foods, foodToEatFromTable);
                     Console.WriteLine($"You have eat {foodToEatFromTable} from table!");
                 }
                 else
                 {
                     Console.WriteLine("There are no foods on the table!");
                 }
             }
             catch (FoodNotExistsException)
             {
                 Console.WriteLine("You have no food called like that in the table!");
             }
         }
         else if (ans == "11")
         {
             Console.Clear();
             try
             {
                 if (Foods.Count > 0)
                 {
                     Console.WriteLine("What you want to throw out?");
                     var foodToRemoveFromTable = Console.ReadLine();
                     mh.ConsumFoodFromTable(Foods, foodToRemoveFromTable);
                     Console.WriteLine($"You have thrown out {foodToRemoveFromTable} from table!");
                 }
                 else
                 {
                     Console.WriteLine("There are no foods on the table!");
                 }
             }
             catch (FoodNotExistsException)
             {
                 Console.WriteLine("You have no food called like that in the table!");
             }
         }
         else if (ans == "12")
         {
             Console.Clear();
             try
             {
                 if (Shelves.Count > 0)
                 {
                     Console.WriteLine("Which shelf you want to remove?\n(If you still have the fridge better to keep the shelf, it can't be recreate later!)\n");
                     for (int i = 0; i < Shelves.Count; i++)
                     {
                         Console.WriteLine($"{i + 1}) {Shelves[i].ShelfSize} shelf.");
                     }
                     var shelfToRemove = Convert.ToInt32(Console.ReadLine());
                     Shelves.Remove(Shelves[shelfToRemove - 1]);
                     Console.WriteLine("You removed a shelf!");
                 }
                 else
                 {
                     Console.WriteLine("No shelf outside!");
                 }
             }
             catch (System.ArgumentOutOfRangeException)
             {
                 Console.WriteLine("Invalid input!");
             }
         }
         else if (ans == "0")
         {
             Console.WriteLine("Bye!");
             System.Environment.Exit(0);
         }
         else
         {
             Console.WriteLine("Invalid input");
             Thread.Sleep(600);
             Console.Clear();
         }
     }
 }