public void AddConnection(string email, Connection connection) { User User; if (ActiveUsers.TryGetValue(email, out User)) { //if (User.Connections.ContainsKey(connection.ConnectionId)) // User.Connections[connection.ConnectionId] = connection; //else User.Connections.Add(connection.ConnectionId, connection); } }
void CheckAgentAuthentication(string email, Connection connection) { var IsAgentAuthenticated = ActiveUsers.Any(u => u.Key.Equals(email) && u.Value.Connections.Any(c => c.Value.AgentIdentifier.Equals(connection.AgentIdentifier) && c.Value.IsOnline)); var IsUserComingBack = ActiveUsers.Any(u => u.Key.Equals(email) && !string.IsNullOrWhiteSpace(u.Value.AuthenticationCode) && u.Value.Connections.Count > 0 && u.Value.Connections.Any(c => !c.Value.IsOnline && c.Value.AgentIdentifier.Equals(connection.AgentIdentifier))); if (IsAgentAuthenticated || IsUserComingBack) connection.IsOnline = true; AddConnection(email, connection); Cleanup(connection.ConnectionId); }
public bool IsAuthenticated(string email, Connection connection) { CheckAgentAuthentication(email, connection); return IsAuthenticated(connection.ConnectionId); }