/// <summary> /// try to add a new client's mac address. /// </summary> /// <param name="deviceInfo">The new client's info.</param> /// <returns><c>true</c> if the client was added successfully, <c>false</c> if it was already registered.</returns> public bool TryAddClient(DeviceInfo deviceInfo) { if (ConnectedClients.Any(d => d.MacAddress == deviceInfo.MacAddress)) { return(false); } lock (ConnectedClients) { ConnectedClients.Add(deviceInfo); } // Initialize the pending messages for this client if (!PendingMessages.ContainsKey(deviceInfo.MacAddress)) { lock (PendingMessages) { PendingMessages.Add(deviceInfo.MacAddress, new Queue <ChatMessage>()); } } return(true); }
/// <summary> /// try to add a new client's mac address. /// </summary> /// <param name="clientAddress">The new client's address.</param> /// <returns><c>true</c> if the client was added successfully, <c>false</c> if it was already registered.</returns> public bool TryAddClient(string clientAddress) { if (ConnectedClients.Contains(clientAddress)) { return(false); } lock (ConnectedClients) { ConnectedClients.Add(clientAddress); } // Initialize the pending messages for this client if (!PendingMessages.ContainsKey(clientAddress)) { lock (PendingMessages) { PendingMessages.Add(clientAddress, new Stack <ChatMessage>()); } } return(true); }