| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- using MediaBrowser.Common.Net;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- namespace MediaBrowser.Common.Implementations.Security
 
- {
 
-     public class UsageReporter
 
-     {
 
-         private readonly IApplicationHost _applicationHost;
 
-         private readonly INetworkManager _networkManager;
 
-         private readonly IHttpClient _httpClient;
 
-         public UsageReporter(IApplicationHost applicationHost, INetworkManager networkManager, IHttpClient httpClient)
 
-         {
 
-             _applicationHost = applicationHost;
 
-             _networkManager = networkManager;
 
-             _httpClient = httpClient;
 
-         }
 
-         public Task ReportServerUsage(CancellationToken cancellationToken)
 
-         {
 
-             cancellationToken.ThrowIfCancellationRequested();
 
-             var mac = _networkManager.GetMacAddress();
 
-             var plugins = string.Join("|", _applicationHost.Plugins.Select(i => i.Name).ToArray());
 
-             var data = new Dictionary<string, string>
 
-             {
 
-                 { "feature", _applicationHost.Name }, 
 
-                 { "mac", mac }, 
 
-                 { "ver", _applicationHost.ApplicationVersion.ToString() }, 
 
-                 { "platform", Environment.OSVersion.VersionString }, 
 
-                 { "isservice", _applicationHost.IsRunningAsService.ToString().ToLower()}, 
 
-                 { "plugins", plugins}
 
-             };
 
-             return _httpClient.Post(Constants.Constants.MbAdminUrl + "service/registration/ping", data, cancellationToken);
 
-         }
 
-         public Task ReportAppUsage(ClientInfo app, CancellationToken cancellationToken)
 
-         {
 
-             cancellationToken.ThrowIfCancellationRequested();
 
-             var data = new Dictionary<string, string>
 
-             {
 
-                 { "feature", app.AppName ?? "Unknown App" }, 
 
-                 { "mac", app.DeviceId ?? _networkManager.GetMacAddress() }, 
 
-                 { "ver", app.AppVersion ?? "Unknown" }, 
 
-                 { "platform", app.DeviceName }, 
 
-             };
 
-             return _httpClient.Post(Constants.Constants.MbAdminUrl + "service/registration/ping", data, cancellationToken);
 
-         }
 
-     }
 
-     public class ClientInfo
 
-     {
 
-         public string AppName { get; set; }
 
-         public string AppVersion { get; set; }
 
-         public string DeviceName { get; set; }
 
-         public string DeviceId { get; set; }
 
-     }
 
- }
 
 
  |