menu now dynamically populates the network list
This commit is contained in:
parent
005b5aacaf
commit
fd71ceeab5
6 changed files with 260 additions and 51 deletions
|
@ -1,14 +1,60 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace WinUI
|
||||
{
|
||||
public class ZeroTierNetwork
|
||||
[Serializable]
|
||||
public class ZeroTierNetwork : ISerializable, IEquatable<ZeroTierNetwork>, IComparable<ZeroTierNetwork>
|
||||
{
|
||||
protected ZeroTierNetwork(SerializationInfo info, StreamingContext ctx)
|
||||
{
|
||||
NetworkId = info.GetString("NetworkId");
|
||||
MacAddress = info.GetString("MacAddress");
|
||||
NetworkName = info.GetString("NetworkName");
|
||||
NetworkStatus = info.GetString("NetworkStatus");
|
||||
NetworkType = info.GetString("NetworkType");
|
||||
MTU = info.GetInt32("MTU");
|
||||
DHCP = info.GetBoolean("DHCP");
|
||||
Bridge = info.GetBoolean("Bridge");
|
||||
BroadcastEnabled = info.GetBoolean("BroadcastEnabled");
|
||||
PortError = info.GetInt32("PortError");
|
||||
NetconfRevision = info.GetInt32("NetconfRevision");
|
||||
AssignedAddresses = (string[])info.GetValue("AssignedAddresses", typeof(string[]));
|
||||
Routes = (NetworkRoute[])info.GetValue("Routes", typeof(NetworkRoute[]));
|
||||
DeviceName = info.GetString("DeviceName");
|
||||
AllowManaged = info.GetBoolean("AllowManaged");
|
||||
AllowGlobal = info.GetBoolean("AllowGlobal");
|
||||
AllowDefault = info.GetBoolean("AllowDefault");
|
||||
IsConnected = false;
|
||||
}
|
||||
|
||||
public virtual void GetObjectData(SerializationInfo info, StreamingContext ctx)
|
||||
{
|
||||
info.AddValue("NetworkId", NetworkId);
|
||||
info.AddValue("MacAddress", MacAddress);
|
||||
info.AddValue("NetworkName", NetworkName);
|
||||
info.AddValue("NetworkStatus", NetworkStatus);
|
||||
info.AddValue("NetworkType", NetworkType);
|
||||
info.AddValue("MTU", MTU);
|
||||
info.AddValue("DHCP", DHCP);
|
||||
info.AddValue("Bridge", Bridge);
|
||||
info.AddValue("BroadcastEnabled", BroadcastEnabled);
|
||||
info.AddValue("PortError", PortError);
|
||||
info.AddValue("NetconfRevision", NetconfRevision);
|
||||
info.AddValue("AssignedAddresses", AssignedAddresses);
|
||||
info.AddValue("Routes", Routes);
|
||||
info.AddValue("DeviceName", DeviceName);
|
||||
info.AddValue("AllowManaged", AllowManaged);
|
||||
info.AddValue("AllowGlobal", AllowGlobal);
|
||||
info.AddValue("AllowDefault", AllowDefault);
|
||||
}
|
||||
|
||||
|
||||
[JsonProperty("nwid")]
|
||||
public string NetworkId { get; set; }
|
||||
|
||||
|
@ -59,5 +105,47 @@ namespace WinUI
|
|||
|
||||
[JsonProperty("allowDefault")]
|
||||
public bool AllowDefault { get; set; }
|
||||
|
||||
public bool IsConnected { get; set; } = false;
|
||||
|
||||
public String Title
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
if (NetworkName != null && NetworkName.Length > 0)
|
||||
{
|
||||
return NetworkId + " (" + NetworkName + ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
return NetworkId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool Equals(ZeroTierNetwork network)
|
||||
{
|
||||
return NetworkId.Equals(network.NetworkId);
|
||||
}
|
||||
|
||||
public int CompareTo(ZeroTierNetwork network)
|
||||
{
|
||||
UInt64 thisNwid = UInt64.Parse(NetworkId, System.Globalization.NumberStyles.HexNumber);
|
||||
UInt64 otherNwid = UInt64.Parse(network.NetworkId, System.Globalization.NumberStyles.HexNumber);
|
||||
|
||||
if (thisNwid > otherNwid)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else if (thisNwid < otherNwid)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue