//--- Methods --- public PageSubscriptionUser GetUserInfo(uint userId) { PageSubscriptionUser user; lock (_users) { if (!_users.TryGetValue(userId, out user)) { user = new PageSubscriptionUser(userId); _users[userId] = user; } } return(user); }
//--- Methods --- public PageSubscriptionUser GetUserInfo(uint userId) { PageSubscriptionUser user; lock(_users) { if(!_users.TryGetValue(userId, out user)) { user = new PageSubscriptionUser(userId); _users[userId] = user; } } return user; }
private void PopulateUser(PageSubscriptionUser userInfo, XDoc userDoc) { var email = userDoc["email"].AsText; if(string.IsNullOrEmpty(email)) { throw new UserException("no email for user"); } userInfo.Email = email; userInfo.Username = userDoc["fullname"].AsText.IfNullOrEmpty(userDoc["username"].AsText); var language = userDoc["language"].AsText; if(!string.IsNullOrEmpty(language)) { userInfo.Culture = CultureUtil.GetNonNeutralCulture(language); } var timezone = userDoc["timezone"].AsText; if(!string.IsNullOrEmpty(timezone)) { // only update timezone if the user has it defined userInfo.Timezone = timezone; } var perms = (userDoc["permissions.effective/operations"].AsText ?? "").Split(','); userInfo.IsAdmin = false; foreach(var perm in perms) { if("ADMIN".EqualsInvariantIgnoreCase(perm.Trim())) { userInfo.IsAdmin = true; } } }