update offline detection

pull/702/head
Luke Pulverenti 9 years ago
parent f2689c4a5a
commit e90072b75f

@ -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);
}

@ -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)
{

Loading…
Cancel
Save