diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-06-29 16:40:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-29 16:40:09 -0400 |
| commit | 75223d8e59a6e08907853bdd56e70121636478f5 (patch) | |
| tree | 427eadcf4ab7023c0ba47f4499ce2fa58d00b57e /MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs | |
| parent | 4753f3f29be80133a11e8b5f0ce993b76ff1dcba (diff) | |
| parent | 78b57f107da8e455f044e13526e3b19af4fc64a6 (diff) | |
Merge pull request #1889 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs b/MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs index 368d21322..6e67af82b 100644 --- a/MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs +++ b/MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs @@ -23,7 +23,7 @@ namespace MediaBrowser.Server.Implementations.Devices private readonly ILogger _logger; private readonly IFileSystem _fileSystem; - private List<DeviceInfo> _devices; + private Dictionary<string, DeviceInfo> _devices; public DeviceRepository(IApplicationPaths appPaths, IJsonSerializer json, ILogger logger, IFileSystem fileSystem) { @@ -46,12 +46,12 @@ namespace MediaBrowser.Server.Implementations.Devices public Task SaveDevice(DeviceInfo device) { var path = Path.Combine(GetDevicePath(device.Id), "device.json"); - _fileSystem.CreateDirectory(Path.GetDirectoryName(path)); + _fileSystem.CreateDirectory(Path.GetDirectoryName(path)); lock (_syncLock) { _json.SerializeToFile(device, path); - _devices = null; + _devices[device.Id] = device; } return Task.FromResult(true); } @@ -95,9 +95,15 @@ namespace MediaBrowser.Server.Implementations.Devices { if (_devices == null) { - _devices = LoadDevices().ToList(); + _devices = new Dictionary<string, DeviceInfo>(StringComparer.OrdinalIgnoreCase); + + var devices = LoadDevices().ToList(); + foreach (var device in devices) + { + _devices[device.Id] = device; + } } - return _devices.ToList(); + return _devices.Values.ToList(); } } @@ -144,7 +150,7 @@ namespace MediaBrowser.Server.Implementations.Devices catch (DirectoryNotFoundException) { } - + _devices = null; } @@ -174,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.Devices public void AddCameraUpload(string deviceId, LocalFileInfo file) { var path = Path.Combine(GetDevicePath(deviceId), "camerauploads.json"); - _fileSystem.CreateDirectory(Path.GetDirectoryName(path)); + _fileSystem.CreateDirectory(Path.GetDirectoryName(path)); lock (_syncLock) { |
