diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-30 00:18:32 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-30 00:18:32 -0500 |
| commit | 792e4c4f1ba3d337cfaffca03e158d95560b3093 (patch) | |
| tree | 8bee5291031e81c2c6108e6acd45828f83dbf7f7 /MediaBrowser.Model/ApiClient/ServerInfo.cs | |
| parent | a6145e54d901095e5b67704e3103843b4b515681 (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Model/ApiClient/ServerInfo.cs')
| -rw-r--r-- | MediaBrowser.Model/ApiClient/ServerInfo.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/MediaBrowser.Model/ApiClient/ServerInfo.cs b/MediaBrowser.Model/ApiClient/ServerInfo.cs index 46cc560af..2faa5b407 100644 --- a/MediaBrowser.Model/ApiClient/ServerInfo.cs +++ b/MediaBrowser.Model/ApiClient/ServerInfo.cs @@ -1,12 +1,16 @@ using MediaBrowser.Model.Connect; +using MediaBrowser.Model.Extensions; using MediaBrowser.Model.System; using System; using System.Collections.Generic; +using System.Linq; 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; } @@ -23,6 +27,7 @@ namespace MediaBrowser.Model.ApiClient public ServerInfo() { WakeOnLanInfos = new List<WakeOnLanInfo>(); + Users = new List<ServerUserInfo>(); } public void ImportInfo(PublicSystemInfo systemInfo) @@ -70,5 +75,48 @@ namespace MediaBrowser.Model.ApiClient throw new ArgumentException("Unexpected ConnectionMode"); } } + + public void AddOrUpdate(ServerUserInfo user) + { + if (user == null) + { + throw new ArgumentNullException("user"); + } + + var list = Users.ToList(); + + var index = FindIndex(list, user.Id); + + if (index != -1) + { + var existing = list[index]; + + // Merge the data + existing.IsOffline = user.IsOffline; + } + else + { + list.Add(user); + } + + Users = list; + } + + private int FindIndex(List<ServerUserInfo> users, string id) + { + var index = 0; + + foreach (var user in users) + { + if (StringHelper.Equals(id, user.Id)) + { + return index; + } + + index++; + } + + return -1; + } } } |
