diff --git a/HyperbolicDownloaderApi/Commands/HostCommands.cs b/HyperbolicDownloaderApi/Commands/HostCommands.cs index ab5b542..097847d 100644 --- a/HyperbolicDownloaderApi/Commands/HostCommands.cs +++ b/HyperbolicDownloaderApi/Commands/HostCommands.cs @@ -148,9 +148,14 @@ public class HostCommands if (recivedHosts is not null) { - ApiManager.SendNotificationMessageNewLine($"Success! Added {recivedHosts.Count} new host(s).", NotificationMessageType.Success); - hostsManager.AddRange(recivedHosts); - hostsManager.Add(new NetworkSocket(ipAddress.ToString(), port, DateTime.Now)); + int newHosts = hostsManager.AddRange(recivedHosts); + + if (hostsManager.Add(new NetworkSocket(ipAddress.ToString(), port, DateTime.Now))) + { + newHosts++; + } + + ApiManager.SendNotificationMessageNewLine($"Success! Added {newHosts} new host(s).", NotificationMessageType.Success); } else { diff --git a/HyperbolicDownloaderApi/Networking/HostsManager.cs b/HyperbolicDownloaderApi/Networking/HostsManager.cs index 86eddcc..4185ac1 100644 --- a/HyperbolicDownloaderApi/Networking/HostsManager.cs +++ b/HyperbolicDownloaderApi/Networking/HostsManager.cs @@ -10,23 +10,33 @@ public class HostsManager private List hosts = new List(); public int Count => hosts.Count; - public void AddRange(IEnumerable hosts) + public int AddRange(IEnumerable hosts) { + int newHosts = 0; + foreach (NetworkSocket host in hosts) { - Add(host); + if (Add(host)) + { + newHosts++; + } } SaveHosts(); + + return newHosts; } - public void Add(NetworkSocket host) + public bool Add(NetworkSocket host) { if (!Contains(host)) { hosts.Add(host); + return true; } SaveHosts(); + + return false; } public void Remove(NetworkSocket host, bool forceRemove = false)