diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-13 16:14:53 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-13 16:14:53 -0400 |
| commit | ab3c26c5647a56e95d0f5229f07b1a1b45812ff8 (patch) | |
| tree | bbcaf5db256364f19cdb4f7c18eb82171dc4183b /MediaBrowser.Server.Implementations/Devices/DeviceManager.cs | |
| parent | 8a15ee6ab4149cf59f8ff2724e3e415d34557da1 (diff) | |
update connect
Diffstat (limited to 'MediaBrowser.Server.Implementations/Devices/DeviceManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Devices/DeviceManager.cs | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs b/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs index 6d4238bdf..e2c729b2d 100644 --- a/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs +++ b/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs @@ -1,8 +1,11 @@ using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Events; using MediaBrowser.Common.IO; using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Devices; +using MediaBrowser.Model.Events; +using MediaBrowser.Model.Logging; using MediaBrowser.Model.Session; using System; using System.Collections.Generic; @@ -19,24 +22,31 @@ namespace MediaBrowser.Server.Implementations.Devices private readonly IFileSystem _fileSystem; private readonly ILibraryMonitor _libraryMonitor; private readonly IConfigurationManager _config; - - public DeviceManager(IDeviceRepository repo, IUserManager userManager, IFileSystem fileSystem, ILibraryMonitor libraryMonitor, IConfigurationManager config) + private readonly ILogger _logger; + + /// <summary> + /// Occurs when [device options updated]. + /// </summary> + public event EventHandler<GenericEventArgs<DeviceInfo>> DeviceOptionsUpdated; + + public DeviceManager(IDeviceRepository repo, IUserManager userManager, IFileSystem fileSystem, ILibraryMonitor libraryMonitor, IConfigurationManager config, ILogger logger) { _repo = repo; _userManager = userManager; _fileSystem = fileSystem; _libraryMonitor = libraryMonitor; _config = config; + _logger = logger; } - public Task RegisterDevice(string reportedId, string name, string appName, string usedByUserId) + public async Task<DeviceInfo> RegisterDevice(string reportedId, string name, string appName, string usedByUserId) { var device = GetDevice(reportedId) ?? new DeviceInfo { Id = reportedId }; - device.Name = name; + device.ReportedName = name; device.AppName = appName; if (!string.IsNullOrWhiteSpace(usedByUserId)) @@ -49,7 +59,9 @@ namespace MediaBrowser.Server.Implementations.Devices device.DateLastModified = DateTime.UtcNow; - return _repo.SaveDevice(device); + await _repo.SaveDevice(device).ConfigureAwait(false); + + return device; } public Task SaveCapabilities(string reportedId, ClientCapabilities capabilities) @@ -114,10 +126,13 @@ namespace MediaBrowser.Server.Implementations.Devices private string GetUploadPath(string deviceId) { - var config = _config.GetUploadOptions(); - var device = GetDevice(deviceId); + if (!string.IsNullOrWhiteSpace(device.CameraUploadPath)) + { + return device.CameraUploadPath; + } + var config = _config.GetUploadOptions(); if (!string.IsNullOrWhiteSpace(config.CameraUploadPath)) { return config.CameraUploadPath; @@ -132,6 +147,18 @@ namespace MediaBrowser.Server.Implementations.Devices return path; } + + public async Task UpdateDeviceInfo(string id, DeviceOptions options) + { + var device = GetDevice(id); + + device.CustomName = options.CustomName; + device.CameraUploadPath = options.CameraUploadPath; + + await _repo.SaveDevice(device).ConfigureAwait(false); + + EventHelper.FireEventIfNotNull(DeviceOptionsUpdated, this, new GenericEventArgs<DeviceInfo>(device), _logger); + } } public class DevicesConfigStore : IConfigurationFactory |
