void SetCurrentUser(DbUser user) { if (user == null) { ClearCurrentUser(true); } else { var deadLogins = ActiveUsers.Where(u => u.Spid == SPID).ToArray(); if (deadLogins.Length > 0) { ActiveUsers.RemoveRange(deadLogins); } if (IsWebContext) { user.LastOnlineWeb = this.Now; } else { user.LastOnlineDesktop = this.Now; } if (!IsWebContext) { ActiveUsers.Add(new DbActiveUser(user, this)); } currentUser = user; SetCurrentUserTimeStamp(true); resetUserIsAdmin(); } }
void ClearCurrentUser(bool saveChanges) { if (currentUser != null) { var toRemove = ActiveUsers.Where(u => u.Spid == SPID).ToArray(); if (toRemove.Length > 0) { ActiveUsers.RemoveRange(toRemove); } SetCurrentUserTimeStamp(saveChanges); currentUser = null; resetUserIsAdmin(); } }