Upgrade project to .NET 8

This commit is contained in:
Stone_Red
2023-12-14 19:00:47 +01:00
parent 9de227050a
commit 30ce61cc41
20 changed files with 53 additions and 137 deletions
@@ -2,14 +2,8 @@
namespace HyperbolicDownloaderApi.Networking;
internal class BroadcastRecivedEventArgs : EventArgs
internal class BroadcastRecivedEventArgs(IPEndPoint ipEndPoint, string message) : EventArgs
{
public BroadcastRecivedEventArgs(IPEndPoint iPEndPoint, string message)
{
IPEndPoint = iPEndPoint;
Message = message;
}
public IPEndPoint IPEndPoint { get; }
public string Message { get; }
public IPEndPoint IPEndPoint { get; } = ipEndPoint;
public string Message { get; } = message;
}
@@ -1,13 +1,7 @@
namespace HyperbolicDownloaderApi.Networking;
internal class DataContainer
internal class DataContainer(string eventName, string jsonData)
{
public string EventName { get; set; }
public string JsonData { get; set; }
public DataContainer(string eventName, string jsonData)
{
JsonData = jsonData;
EventName = eventName;
}
public string EventName { get; set; } = eventName;
public string JsonData { get; set; } = jsonData;
}
@@ -8,7 +8,7 @@ namespace HyperbolicDownloaderApi.Networking;
public class HostsManager
{
private List<NetworkSocket> hosts = new List<NetworkSocket>();
private List<NetworkSocket> hosts = [];
public int Count => hosts.Count;
public int AddRange(IEnumerable<NetworkSocket> hosts)
@@ -48,7 +48,7 @@ public class HostsManager
public int CheckHostsActivity()
{
List<NetworkSocket> hostsToRemove = new List<NetworkSocket>();
List<NetworkSocket> hostsToRemove = [];
int activeHostsCount = 0;
foreach (NetworkSocket host in hosts)
{
@@ -113,7 +113,7 @@ public class HostsManager
Console.CursorLeft = 0;
if (sendTask.IsCompletedSuccessfully)
{
int newHosts = AddRange(sendTask.Result ?? new());
int newHosts = AddRange(sendTask.Result ?? []);
newHostsCount += newHosts;
if (newHosts > 0)
@@ -145,15 +145,14 @@ public class HostsManager
public List<NetworkSocket> ToList()
{
return hosts.ToList();
return [.. hosts];
}
public void SaveHosts()
{
hosts = hosts
.OrderByDescending(s => s.DownloadSpeed)
.ThenByDescending(s => s.LastActive)
.ToList();
hosts = [.. hosts
.OrderByDescending(s => s.DownloadSpeed)
.ThenByDescending(s => s.LastActive)];
File.WriteAllText(ApiConfiguration.HostsFilePath, JsonSerializer.Serialize(hosts));
}
}
@@ -5,20 +5,11 @@ using System.Text.Json;
namespace HyperbolicDownloaderApi.Networking;
internal class MessageRecivedEventArgs<T> : EventArgs
internal class MessageRecivedEventArgs<T>(NetworkStream networkStream, IPAddress ipAddress, T data) : EventArgs
{
private readonly NetworkStream networkStream;
public T Data { get; set; } = data;
public MessageRecivedEventArgs(NetworkStream networkStream, IPAddress ipAddress, T data)
{
this.networkStream = networkStream;
Data = data;
IpAddress = ipAddress;
}
public T Data { get; set; }
public IPAddress IpAddress { get; set; }
public IPAddress IpAddress { get; set; } = ipAddress;
public async Task SendResponseAsync(object response)
{
@@ -9,24 +9,15 @@ using System.Text.Json;
namespace HyperbolicDownloaderApi.Networking;
internal class NetworkClient
internal class NetworkClient(FilesManager filesManager)
{
private readonly FilesManager filesManager;
private readonly Dictionary<string, (Type type, Delegate method)> events = new();
private readonly Dictionary<string, (Type type, Delegate method)> events = [];
private TcpListener? tcpListener;
public bool IsListening { get; private set; } = false;
public NetworkClient(FilesManager filesManager)
{
this.filesManager = filesManager;
}
public static async Task<T?> SendAsync<T>(IPAddress remoteIp, int remotePort, string eventName, object data)
{
if (remoteIp is null)
{
throw new ArgumentNullException(nameof(remoteIp));
}
ArgumentNullException.ThrowIfNull(remoteIp);
TcpClient client = new TcpClient();
@@ -57,10 +48,7 @@ internal class NetworkClient
public static async Task SendAsync(IPAddress remoteIp, int remotePort, string eventName, object data)
{
if (remoteIp is null)
{
throw new ArgumentNullException(nameof(remoteIp));
}
ArgumentNullException.ThrowIfNull(remoteIp);
TcpClient client = new TcpClient();
@@ -125,9 +113,9 @@ internal class NetworkClient
DataContainer? dataContainer = JsonSerializer.Deserialize<DataContainer>(dataReceived);
if (dataContainer is not null && events.ContainsKey(dataContainer.EventName))
if (dataContainer is not null && events.TryGetValue(dataContainer.EventName, out (Type type, Delegate method) value))
{
(Type type, Delegate method) = events[dataContainer.EventName];
(Type type, Delegate method) = value;
Type eventArgsType = typeof(MessageRecivedEventArgs<>).MakeGenericType(type);
@@ -1,20 +1,13 @@
namespace HyperbolicDownloaderApi.Networking;
public class NetworkSocket
public class NetworkSocket(string ipAddress, int port, DateTime lastActive)
{
public string IPAddress { get; set; }
public int Port { get; set; }
public DateTime LastActive { get; set; }
public string IPAddress { get; set; } = ipAddress;
public int Port { get; set; } = port;
public DateTime LastActive { get; set; } = lastActive;
public long DownloadSpeed { get; set; }
public NetworkSocket(string ipAddress, int port, DateTime lastActive)
{
IPAddress = ipAddress;
Port = port;
LastActive = lastActive;
}
public override bool Equals(object? obj)
{
if (obj is not NetworkSocket networkSocket)