private void GoToAdminMode() { string input = Console.ReadLine(); Dictionary <string, int> listOfUsers = _userData.ListAllUsers(); if (listOfUsers == null) { _currentView.PrintMessage("No user data found!\n"); return; } if (int.TryParse(input.ToString(), out int userInput)) { switch (userInput) { case 0: { Environment.Exit(0); break; } case 1: { _currentView.PrintMessage("Enter username of the user you want to edit: "); string userToEdit = Console.ReadLine(); if (!listOfUsers.ContainsKey(userToEdit)) { _currentView.PrintMessage($"User not found: {userToEdit}!"); break; } _currentView.PrintMessage("Enter new role: "); string newRoleInput = Console.ReadLine(); if (!Enum.TryParse(newRoleInput, true, out UserRoles newUserRole)) { _currentView.PrintError($"Invalid role: {newRoleInput}!\n"); break; } else { _currentView.PrintMessage("Role was succesfully updated."); } _userData.AssignUserRole(listOfUsers[userToEdit], newUserRole); } break; case 2: { _currentView.PrintMessage("Enter the username you want to edit: "); string userToEdit = Console.ReadLine(); if (!listOfUsers.ContainsKey(userToEdit)) { _currentView.PrintMessage($"There is no such user!\n"); break; } _currentView.PrintMessage("Enter new date: "); string newDate = Console.ReadLine(); if (!DateTime.TryParse(newDate, out DateTime newUserDate) || newUserDate < DateTime.Now) { _currentView.PrintError($"Invalid date!\n"); break; } _userData.SetUserActiveTo(listOfUsers[userToEdit], newUserDate); } break; case 3: { foreach (IUser u in _userData.GetUsersData()) { _currentView.PrintMessage(u.ToString()); } } break; case 4: { _currentView.PrintMessage("Enter a key word to search for: "); string keyWord = Console.ReadLine(); foreach (string logEntry in Logger.GetCurrentSessionActivities(keyWord)) { _currentView.PrintMessage(logEntry); } } break; case 5: { _currentView.PrintMessage(Logger.GetAllUserActivities()); } break; default: { _currentView.PrintError("Invalid input: " + input + "!\n"); } break; } } _currentView.PrintMessage("\nPress any key to continue..."); Console.ReadKey(); Console.Clear(); }