static void Main(string[] args) { while (true) { InputOutput.ShowMainMenu(); Engine.HandleMainMenuInput(InputOutput.TakeInput()); } }
public static void ListShelfs() { Console.Clear(); int shelfCount = Engine.shelfHolder.Length; int currentPage = 0; int counterSlots = 0; int availableSlot = 0; bool hasPressedEsc = false; //Count the pages for (int i = 0; i < shelfCount; i++) { if (Engine.shelfHolder[i] != null) { counterSlots += 1; } if (Engine.shelfHolder[i] == null) { continue; } } while (!hasPressedEsc) { availableSlot = 0; if (currentPage >= counterSlots) { currentPage -= 1; } if (currentPage <= -1) { currentPage = 0; } if (Engine.shelfCounter == 0) { Console.Clear(); Console.WriteLine("There are no shelves."); Console.ReadKey(true); return; } for (int j = 0; j < Engine.shelfHolder[currentPage].box.GetLength(0); j++) { Console.Write("|"); for (int k = 0; k < Engine.shelfHolder[currentPage].box.GetLength(1); k++) { if (Engine.shelfHolder[currentPage].box[j, k].desc == null) { Console.Write(" |"); availableSlot += 1; } else { Console.Write(" X |"); } } Console.WriteLine(); } Console.WriteLine($"{currentPage + 1}({counterSlots})"); Console.WriteLine(); Console.WriteLine($"Name: {Engine.shelfHolder[currentPage].name}"); Console.WriteLine($"Available slots: {availableSlot}"); Console.WriteLine(); Console.WriteLine("(<) Previous shelf (>) Next shelf"); ConsoleKey input = InputOutput.TakeInput(); switch (input) { case ConsoleKey.RightArrow: currentPage += 1; Console.Clear(); break; case ConsoleKey.LeftArrow: currentPage -= 1; Console.Clear(); break; case ConsoleKey.Escape: hasPressedEsc = true; break; default: Console.Clear(); break; } } }