public static void AdminMenu() { String input; int ans; int flag = 0; do { Console.WriteLine("1:EXIT"); Console.WriteLine("2:Change user role"); Console.WriteLine("3:Change user activity"); Console.WriteLine("4:All users"); Console.WriteLine("5:View log"); Console.WriteLine("6:Show recent activity"); Console.WriteLine("Choose option "); do { input = Console.ReadLine(); ans = Convert.ToInt32(input); flag = 0; if (ans == 2 || ans == 3) { if (!RightsGranted.Rights[UserRole.ADMIN].Contains(RoleRights.CanEditStudents)) { Console.WriteLine("no access"); flag = 1; } } if (ans == 5 || ans == 6) { if (!RightsGranted.Rights[UserRole.ADMIN].Contains(RoleRights.CanSeeLogs)) { Console.WriteLine("no access"); flag = 1; } } if (ans == 8 || ans == 9) { if (!RightsGranted.Rights[UserRole.ADMIN].Contains(RoleRights.CanEditUsers)) { Console.WriteLine("no access"); flag = 1; } } } while (ans < 1 || ans > 6 || flag == 1); switch (ans) { case 2: { //User userToChange = UserData.getValidUser(); int index = UserData.getValidIndex(); UserRole ur; Console.WriteLine("Current user role: " + UserData.TestUser[index].role); Console.WriteLine("New role: "); ur = UserData.ToEnum(Console.ReadLine()); Console.WriteLine("New role:" + ur); UserData.AssignUserRole(index, ur); break; } case 3: { //User userToChange = UserData.getValidUser(); int index = UserData.getValidIndex(); DateTime newUserActiveTo; Console.WriteLine("Current user active to: " + UserData.TestUser[index].activeUntil); Console.WriteLine("New time: "); DateTime.TryParse(Console.ReadLine(), out newUserActiveTo); Console.WriteLine("New time:" + newUserActiveTo); UserData.SetUserActiveTo(index, newUserActiveTo); break; } case 4: { Dictionary <string, int> allusers = UserData.AllUsernames(); //Console.WriteLine("All users "+ allusers.Count); Console.Clear(); foreach (var currentuser in allusers) { Console.WriteLine(currentuser.Value + " " + currentuser.Key); } break; } case 5: { Console.Clear(); Console.WriteLine(File.ReadAllText("Log.txt")); Console.ReadKey(); break; } case 6: { String activity; Console.Clear(); Console.WriteLine("Type in activity "); activity = Console.ReadLine(); Console.WriteLine("Current activities"); Logger.GetCurrentSessionActivies(activity); Console.ReadKey(); break; } } } while (ans != 1); }