| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- using MediaBrowser.Model.Connect;
 
- using MediaBrowser.Model.Extensions;
 
- using MediaBrowser.Model.System;
 
- using System;
 
- using System.Collections.Generic;
 
- namespace MediaBrowser.Model.ApiClient
 
- {
 
-     public class ServerInfo
 
-     {
 
-         public List<ServerUserInfo> Users { get; set; }
 
-         
 
-         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 DateTime DateLastLocalConnection { get; set; }
 
-         public String ExchangeToken { get; set; }
 
-         public UserLinkType? UserLinkType { get; set; }
 
-         public ConnectionMode? LastConnectionMode { get; set; }
 
-         public ServerInfo()
 
-         {
 
-             WakeOnLanInfos = new List<WakeOnLanInfo>();
 
-             Users = new List<ServerUserInfo>();
 
-         }
 
-         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");
 
-             }
 
-         }
 
-         public void AddOrUpdate(ServerUserInfo user)
 
-         {
 
-             if (user == null)
 
-             {
 
-                 throw new ArgumentNullException("user");
 
-             }
 
-             // Clone the existing list of users
 
-             var list = new List<ServerUserInfo>();
 
-             foreach (ServerUserInfo serverUserInfo in Users)
 
-             {
 
-                 list.Add(serverUserInfo);
 
-             }
 
-             var index = FindIndex(list, user.Id);
 
-             if (index != -1)
 
-             {
 
-                 var existing = list[index];
 
-                 // Merge the data
 
-                 existing.IsSignedInOffline = user.IsSignedInOffline;
 
-             }
 
-             else
 
-             {
 
-                 list.Add(user);
 
-             }
 
-             Users = list;
 
-         }
 
-         private int FindIndex(List<ServerUserInfo> users, string id)
 
-         {
 
-             var index = 0;
 
-             foreach (var user in users)
 
-             {
 
-                 if (StringHelper.EqualsIgnoreCase(id, user.Id))
 
-                 {
 
-                     return index;
 
-                 }
 
-                 index++;
 
-             }
 
-             return -1;
 
-         }
 
-     }
 
- }
 
 
  |