using Demo.Domain.Models; using Demo.Domain.UseCase; namespace Demo.UI { public class MainMenuUI { UserConsoleUI _userConsoleUI; GroupConsoleUI _groupConsoleUI; PresenceConsoleUI _presenceConsoleUI; AdminConsoleUI _adminConsoleUI; public MainMenuUI(IUserUseCase userUseCase, IGroupUseCase groupUseCase, IPresenceUseCase presenceUseCase, IAdminUseCase adminUseCase) { _userConsoleUI = new UserConsoleUI(userUseCase); _groupConsoleUI = new GroupConsoleUI(groupUseCase, userUseCase, presenceUseCase); _presenceConsoleUI = new PresenceConsoleUI(presenceUseCase); _adminConsoleUI = new AdminConsoleUI(adminUseCase); SelectRole(); } private void SelectRole() { Console.WriteLine("Выберите роль:\n1: user\n2: admin"); string role = Console.ReadLine(); if (role == "1") { DisplayMenu(); } else if (role == "2") { DisplayAdminMenu(); } else { Console.WriteLine("Неверная роль. Попробуйте еще раз."); SelectRole(); } } private void DisplayAdminMenu() { while(true) { switch (Console.ReadLine()) { case "0": _adminConsoleUI.ExcelExport(Convert.ToInt32(Console.ReadLine())); break; default: DisplayAdminMenu(); break; } } } private void DisplayMenu() { while (true) { switch (Console.ReadLine()) { case "0": _groupConsoleUI.DisplayAllBoutGroup(Convert.ToInt32(Console.ReadLine())); break; case "1": _groupConsoleUI.DisplayAllGroups(); break; case "2": _groupConsoleUI.CreateNewGroup(Console.ReadLine()); break; case "3": _groupConsoleUI.UpdateGroupName(Group.Parse(Console.ReadLine())); break; case "4": _groupConsoleUI.DisplayGroupByID(Convert.ToInt32(Console.ReadLine())); break; case "5": _groupConsoleUI.RemoveGroupByID(Convert.ToInt32(Console.ReadLine())); break; case "6": _userConsoleUI.DisplayAllUsers(); break; case "7": _userConsoleUI.DisplayUserByGuid(Guid.Parse(Console.ReadLine())); break; case "8": _userConsoleUI.UpdateUserByGuid(User.Parse(Console.ReadLine())); break; case "9": _userConsoleUI.RemoveUserByGuid(Guid.Parse(Console.ReadLine())); break; case "10": Console.WriteLine("писяпопакака"); break; case "11": _presenceConsoleUI.DisplayPresenceByGroup(Convert.ToInt32(Console.ReadLine())); break; case "12": _presenceConsoleUI.DisplayPresenceByGroupByTime(Convert.ToInt32(Console.ReadLine()), DateOnly.FromDateTime(Convert.ToDateTime(Console.ReadLine()))); break; case "13": _presenceConsoleUI.GeneratePresence(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), DateOnly.FromDateTime(Convert.ToDateTime(Console.ReadLine()))); break; case "14": _presenceConsoleUI.GeneratePresenceWeek(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), DateOnly.FromDateTime(Convert.ToDateTime(Console.ReadLine()))); break; case "15": _presenceConsoleUI.IsAttedance(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), DateOnly.FromDateTime(Convert.ToDateTime(Console.ReadLine())), Guid.Parse(Console.ReadLine())); break; default: DisplayMenu(); break; } } } } }