|
|
|
@ -703,15 +703,23 @@ namespace MediaBrowser.Controller.Entities
|
|
|
|
|
|
|
|
|
|
foreach (var item in itemsRemoved)
|
|
|
|
|
{
|
|
|
|
|
BaseItem removed;
|
|
|
|
|
|
|
|
|
|
if (!_children.TryRemove(item.Id, out removed))
|
|
|
|
|
if (IsRootPathAvailable(item.Path))
|
|
|
|
|
{
|
|
|
|
|
Logger.Error("Failed to remove {0}", item.Name);
|
|
|
|
|
BaseItem removed;
|
|
|
|
|
|
|
|
|
|
if (!_children.TryRemove(item.Id, out removed))
|
|
|
|
|
{
|
|
|
|
|
Logger.Error("Failed to remove {0}", item.Name);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LibraryManager.ReportItemRemoved(item);
|
|
|
|
|
}
|
|
|
|
|
item.IsOffline = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LibraryManager.ReportItemRemoved(item);
|
|
|
|
|
item.IsOffline = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -835,6 +843,28 @@ namespace MediaBrowser.Controller.Entities
|
|
|
|
|
await Task.WhenAll(tasks).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Determines if a path's root is available or not
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="path"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private bool IsRootPathAvailable(string path)
|
|
|
|
|
{
|
|
|
|
|
var parent = System.IO.Path.GetDirectoryName(path);
|
|
|
|
|
|
|
|
|
|
while (!string.IsNullOrEmpty(parent) && !parent.ToCharArray()[0].Equals(System.IO.Path.DirectorySeparatorChar))
|
|
|
|
|
{
|
|
|
|
|
if (Directory.Exists(parent))
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent = System.IO.Path.GetDirectoryName(path);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get the children of this folder from the actual file system
|
|
|
|
|
/// </summary>
|
|
|
|
@ -973,7 +1003,7 @@ namespace MediaBrowser.Controller.Entities
|
|
|
|
|
{
|
|
|
|
|
var changed = await base.RefreshMetadata(cancellationToken, forceSave, forceRefresh, allowSlowProviders, resetResolveArgs).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
return changed || (SupportsLinkedChildren && RefreshLinkedChildren());
|
|
|
|
|
return changed || (SupportsLinkedChildren && LocationType == LocationType.FileSystem && RefreshLinkedChildren());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|