Quasar/Client/Core/Helper/HostHelper.cs

42 lines
1.2 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Text;
using xClient.Core.Utilities;
namespace xClient.Core.Helper
{
public static class HostHelper
{
public static List<Host> GetHostsList(string rawHosts)
{
List<Host> hostsList = new List<Host>();
if (string.IsNullOrEmpty(rawHosts)) return hostsList;
var hosts = rawHosts.Split(';');
foreach (var hostPart in from host in hosts where (!string.IsNullOrEmpty(host) && host.Contains(':')) select host.Split(':'))
{
if (hostPart.Length != 2 || hostPart[0].Length < 1 || hostPart[1].Length < 1) continue; // invalid, ignore host
ushort port;
if (!ushort.TryParse(hostPart[1], out port)) continue; // invalid, ignore host
hostsList.Add(new Host { Hostname = hostPart[0], Port = port });
}
return hostsList;
}
public static string GetRawHosts(List<Host> hosts)
{
StringBuilder rawHosts = new StringBuilder();
foreach (var host in hosts)
rawHosts.Append(host + ";");
return rawHosts.ToString();
}
}
}