aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/ApiClient/ServerInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/ApiClient/ServerInfo.cs')
-rw-r--r--MediaBrowser.Model/ApiClient/ServerInfo.cs74
1 files changed, 74 insertions, 0 deletions
diff --git a/MediaBrowser.Model/ApiClient/ServerInfo.cs b/MediaBrowser.Model/ApiClient/ServerInfo.cs
new file mode 100644
index 000000000..46cc560af
--- /dev/null
+++ b/MediaBrowser.Model/ApiClient/ServerInfo.cs
@@ -0,0 +1,74 @@
+using MediaBrowser.Model.Connect;
+using MediaBrowser.Model.System;
+using System;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Model.ApiClient
+{
+ public class ServerInfo
+ {
+ public String Name { get; set; }
+ public String Id { get; set; }
+ public String LocalAddress { get; set; }
+ public String RemoteAddress { get; set; }
+ public String ManualAddress { get; set; }
+ public String UserId { get; set; }
+ public String AccessToken { get; set; }
+ public List<WakeOnLanInfo> WakeOnLanInfos { get; set; }
+ public DateTime DateLastAccessed { get; set; }
+ public String ExchangeToken { get; set; }
+ public UserLinkType? UserLinkType { get; set; }
+ public ConnectionMode? LastConnectionMode { get; set; }
+
+ public ServerInfo()
+ {
+ WakeOnLanInfos = new List<WakeOnLanInfo>();
+ }
+
+ public void ImportInfo(PublicSystemInfo systemInfo)
+ {
+ Name = systemInfo.ServerName;
+ Id = systemInfo.Id;
+
+ if (!string.IsNullOrEmpty(systemInfo.LocalAddress))
+ {
+ LocalAddress = systemInfo.LocalAddress;
+ }
+
+ if (!string.IsNullOrEmpty(systemInfo.WanAddress))
+ {
+ RemoteAddress = systemInfo.WanAddress;
+ }
+
+ var fullSystemInfo = systemInfo as SystemInfo;
+
+ if (fullSystemInfo != null)
+ {
+ WakeOnLanInfos = new List<WakeOnLanInfo>();
+
+ if (!string.IsNullOrEmpty(fullSystemInfo.MacAddress))
+ {
+ WakeOnLanInfos.Add(new WakeOnLanInfo
+ {
+ MacAddress = fullSystemInfo.MacAddress
+ });
+ }
+ }
+ }
+
+ public string GetAddress(ConnectionMode mode)
+ {
+ switch (mode)
+ {
+ case ConnectionMode.Local:
+ return LocalAddress;
+ case ConnectionMode.Manual:
+ return ManualAddress;
+ case ConnectionMode.Remote:
+ return RemoteAddress;
+ default:
+ throw new ArgumentException("Unexpected ConnectionMode");
+ }
+ }
+ }
+}