/** * Retrieve all users */ public Dictionary <int, User> getAllUser() { // Get all users from the identity map Dictionary <int, User> users = UserIdentityMap.getInstance().findAll(); // Get all users in the database Dictionary <int, Object[]> result = tdgUser.getAll(); // If it's empty, simply return those from the identity map if (result == null) { return(users); } // Loop through each of the result: foreach (KeyValuePair <int, Object[]> record in result) { // The user is not in the identity map. Create an instance, add it to identity map and to the return variable if (!users.ContainsKey(record.Key)) { User user = UserCatalog.getInstance().makeNewUser((int)record.Key, (String)record.Value[1], (String)record.Value[2], (String)record.Value[3]); UserIdentityMap.getInstance().addTo(user); users.Add(user.userID, user); } } return(users); }
/** * Retrieve a user given its ID */ public User getUser(int userID) { User user = UserIdentityMap.getInstance().find(userID); Object[] result = null; // If not found in user identity map, try to retrieve from the DB if (user == null) { result = tdgUser.get(userID); // If the TDG doesn't have it, then it doesn't exist if (result == null) { return(null); } else { // We got the user from the TDG who got it from the DB and now the mapper must add it to the UserIdentityMap user = new User((int)result[0], (String)result[1], (String)result[2], (String)result[3]); UserIdentityMap.getInstance().addTo(user); return(user); } } return(null); //so all code paths return a value }
/** * Initialize the list of users, used for instantiating console * */ public void initializeDirectory() { // Get all users in the database Dictionary <int, Object[]> result = tdgUser.getAll(); //Loop through each of the result: foreach (KeyValuePair <int, Object[]> record in result) { User user = UserCatalog.getInstance().makeNewUser((int)record.Key, (String)record.Value[1], (String)record.Value[2], (String)record.Value[3]); UserIdentityMap.getInstance().addTo(user); } }