public User GetUser(string id) {
            if (id == sessionController.CurrentSession.Id) {
                return sessionController.CurrentSession;
            }

            if (!users.ContainsKey(id)) {
                var user = new User(id);
                user.ForceValidate();
                users[id] = user;
            } else {
                users[id].Validate();
            }
            return users[id];
        }
        public async Task<User> UpdateDataAsync(User user) {
            if (user.Id == sessionController.CurrentSession.Id) {
                var session = sessionController.CurrentSession;
                user.CopyTo(session);
                return session;
            }

            if (!users.ContainsKey(user.Id)) {
                await user.ForceValidate();
                users[user.Id] = user;
            } else {
                user.CopyTo(users[user.Id]);
            }
            return users[user.Id];
        }