static void Main(string[] args) { do { SessionHelpers currentSession = SessionHelpers.GetCurrentSession(); MenuHelpers.AuthenticateUserMenu(); ChooseMenuItemAggregate menuItems = MenuHelpers.GetMenuItemsForCurrentUser(); do { MenuHelpers.PrintMenu(menuItems, out int choice); if (choice == 0) { currentSession.LogoutMe(); break; } if (choice == -1) { return; } menuItems = new ChooseMenuItemAggregate(menuItems[choice].SubItems); } while (true); } while (true); }
public static void PrintMenu(ChooseMenuItemAggregate menuItems, out int choice) { if (menuItems.Count == 0) { Console.WriteLine("Нещо не е наред!Необходимо е да се свържете с поддръжката!"); choice = -1; return; } IChooseMenuIterator iter = menuItems.GetIterator(); do { Console.Clear(); for (ChooseMenuItem s = iter.FirstItem; iter.IsDone == false; s = iter.NextItem) { Console.WriteLine($"{iter.CurrentIndex + 1}.{s.ItemText}"); } Console.WriteLine("\n0.LogoutMe"); } while (!int.TryParse(Console.ReadLine(), out choice) || menuItems.Count < choice || choice < 0); }
public static ChooseMenuItemAggregate GetMenuItemsForCurrentUser() { ChooseMenuItemAggregate menuItems = new ChooseMenuItemAggregate(); switch (currentSession.Role) { case PersonRole.Boss: menuItems = new ChooseMenuItemAggregate(ChooseMenuFacade.GetBossMenu()); break; case PersonRole.Workers: menuItems = new ChooseMenuItemAggregate(ChooseMenuFacade.GetWorkersMenu()); break; case PersonRole.Clients: menuItems = new ChooseMenuItemAggregate(ChooseMenuFacade.GetClientsMenu()); break; default: throw new NotImplementedException(); } return(menuItems); }