diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-21 11:43:10 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-21 11:43:10 -0400 |
| commit | e90072b75faf2ed1661de5f0362e459b8cfc990b (patch) | |
| tree | ca13d37add6e9700e813e888a432466a1ccac904 | |
| parent | f2689c4a5abb06aadbe8933cb21c76d1310d8f40 (diff) | |
update offline detection
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs | 21 |
2 files changed, 18 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 4cdc4657e..04d42e16f 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -702,7 +702,7 @@ namespace MediaBrowser.Controller.Entities /// </summary> /// <param name="path">The path.</param> /// <returns><c>true</c> if the specified path is offline; otherwise, <c>false</c>.</returns> - private bool IsPathOffline(string path) + public static bool IsPathOffline(string path) { if (FileSystem.FileExists(path)) { @@ -736,12 +736,12 @@ namespace MediaBrowser.Controller.Entities /// <param name="folders">The folders.</param> /// <param name="path">The path.</param> /// <returns><c>true</c> if the specified folders contains path; otherwise, <c>false</c>.</returns> - private bool ContainsPath(IEnumerable<VirtualFolderInfo> folders, string path) + private static bool ContainsPath(IEnumerable<VirtualFolderInfo> folders, string path) { return folders.SelectMany(i => i.Locations).Any(i => ContainsPath(i, path)); } - private bool ContainsPath(string parent, string path) + private static bool ContainsPath(string parent, string path) { return string.Equals(parent, path, StringComparison.OrdinalIgnoreCase) || FileSystem.ContainsSubPath(parent, path); } diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs index c9f7165cb..709ed5ec9 100644 --- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs @@ -184,15 +184,24 @@ namespace MediaBrowser.Server.Implementations.Persistence try { - if (!_fileSystem.FileExists(path) && !_fileSystem.DirectoryExists(path)) + if (_fileSystem.FileExists(path) || _fileSystem.DirectoryExists(path)) { - var libraryItem = _libraryManager.GetItemById(item.Item1); + continue; + } + + var libraryItem = _libraryManager.GetItemById(item.Item1); - await _libraryManager.DeleteItem(libraryItem, new DeleteOptions - { - DeleteFileLocation = false - }); + if (Folder.IsPathOffline(path)) + { + libraryItem.IsOffline = true; + await libraryItem.UpdateToRepository(ItemUpdateType.None, cancellationToken).ConfigureAwait(false); + continue; } + + await _libraryManager.DeleteItem(libraryItem, new DeleteOptions + { + DeleteFileLocation = false + }); } catch (OperationCanceledException) { |
