public string this [UserStruct user] { get { return(UsersCache[user]); } set { var past = UsersCache[user]; UsersCache[user] = value; if (past.IsNotNull()) { OnConnectionRemove?.Invoke(this, past); OnConnectionRemoveOtherData?.Invoke(user, past); } if (value.IsNotNull()) { OnConnectionAdd?.Invoke(this, value); OnConnectionAddOtherData?.Invoke(user, value); } } }
public void RemoveUser(UserStruct user) { var connection = UsersCache[user]; lock (UsersCache) { UsersCache.Remove(user); UserIdCache.Remove(user); } if (connection.IsNotNull()) { OnConnectionRemove?.Invoke(this, connection); OnConnectionRemoveOtherData?.Invoke(user, connection); } }