aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-09-21 11:43:10 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-09-21 11:43:10 -0400
commite90072b75faf2ed1661de5f0362e459b8cfc990b (patch)
treeca13d37add6e9700e813e888a432466a1ccac904
parentf2689c4a5abb06aadbe8933cb21c76d1310d8f40 (diff)
update offline detection
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs6
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs21
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)
{