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(); } }
public Guid AddUser(string userName) { lock (syncRoot) { if (ActiveUsers.Count(entry => entry.Value.Item1 == userName) == 0) { Guid guid = Guid.NewGuid(); ActiveUsers.Add(guid, new Tuple <string, DateTime>(userName, DateTime.Now)); return(guid); } else { ActiveUsers.RefreshUser(userName); return(ActiveUsers.Where(entry => entry.Value.Item1 == userName).First().Key); } } }
public string GetUserNameByGuid(Guid guid) { return(ActiveUsers.Where(entry => entry.Key == guid).FirstOrDefault().Value.Item1); }