diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-01-11 12:58:44 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-01-11 12:58:44 -0500 |
| commit | fb31918f9cea1cd13d9aa8c7468f961cc4f43833 (patch) | |
| tree | 0a3d696a0e32ff4b646d899912f2b6ffe9ea4807 /MediaBrowser.Controller | |
| parent | cce6484b6c52b37609d09fb5112ff04b166fab72 (diff) | |
| parent | 0b5d4ce3f839118a0a5903ec278321ecfecf1c32 (diff) | |
Merge pull request #2392 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 40 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/ICollectionFolder.cs | 13 |
3 files changed, 18 insertions, 52 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index c8f49820ff..3651ba3631 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -273,9 +273,6 @@ namespace MediaBrowser.Controller.Entities public virtual string Path { get; set; } [IgnoreDataMember] - public bool IsOffline { get; set; } - - [IgnoreDataMember] public virtual SourceType SourceType { get; set; } /// <summary> @@ -339,20 +336,6 @@ namespace MediaBrowser.Controller.Entities } } - public Task UpdateIsOffline(bool newValue) - { - var item = this; - - if (item.IsOffline != newValue) - { - item.IsOffline = newValue; - // this is creating too many repeated db updates - //return item.UpdateToRepository(ItemUpdateType.None, CancellationToken.None); - } - - return Task.FromResult(true); - } - /// <summary> /// Gets or sets the type of the location. /// </summary> diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 61747bd140..cdd503bba4 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -369,6 +369,11 @@ namespace MediaBrowser.Controller.Entities var validChildren = new List<BaseItem>(); + var allLibraryPaths = LibraryManager + .GetVirtualFolders() + .SelectMany(i => i.Locations) + .ToList(); + if (locationType != LocationType.Remote && locationType != LocationType.Virtual) { IEnumerable<BaseItem> nonCachedChildren; @@ -402,7 +407,6 @@ namespace MediaBrowser.Controller.Entities if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child)) { - await currentChild.UpdateIsOffline(false).ConfigureAwait(false); validChildren.Add(currentChild); continue; @@ -429,9 +433,8 @@ namespace MediaBrowser.Controller.Entities { } - else if (!string.IsNullOrEmpty(item.Path) && IsPathOffline(item.Path)) + else if (!string.IsNullOrEmpty(item.Path) && IsPathOffline(item.Path, allLibraryPaths)) { - await item.UpdateIsOffline(true).ConfigureAwait(false); } else { @@ -446,7 +449,6 @@ namespace MediaBrowser.Controller.Entities Logger.Debug("Removed item: " + item.Path); item.SetParent(null); - item.IsOffline = false; await LibraryManager.DeleteItem(item, new DeleteOptions { DeleteFileLocation = false }).ConfigureAwait(false); LibraryManager.ReportItemRemoved(item); } @@ -612,6 +614,11 @@ namespace MediaBrowser.Controller.Entities /// <returns><c>true</c> if the specified path is offline; otherwise, <c>false</c>.</returns> public static bool IsPathOffline(string path) { + return IsPathOffline(path, LibraryManager.GetVirtualFolders().SelectMany(i => i.Locations).ToList()); + } + + public static bool IsPathOffline(string path, List<string> allLibraryPaths) + { if (FileSystem.FileExists(path)) { return false; @@ -627,31 +634,20 @@ namespace MediaBrowser.Controller.Entities return false; } - path = System.IO.Path.GetDirectoryName(path); - } + if (allLibraryPaths.Contains(path, StringComparer.OrdinalIgnoreCase)) + { + return true; + } - if (ContainsPath(LibraryManager.GetVirtualFolders(), originalPath)) - { - return true; + path = System.IO.Path.GetDirectoryName(path); } - return false; - } - - /// <summary> - /// Determines whether the specified folders contains path. - /// </summary> - /// <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 static bool ContainsPath(IEnumerable<VirtualFolderInfo> folders, string path) - { - return folders.SelectMany(i => i.Locations).Any(i => ContainsPath(i, path)); + return allLibraryPaths.Any(i => ContainsPath(i, originalPath)); } private static bool ContainsPath(string parent, string path) { - return string.Equals(parent, path, StringComparison.OrdinalIgnoreCase) || FileSystem.ContainsSubPath(parent, path); + return FileSystem.AreEqual(parent, path) || FileSystem.ContainsSubPath(parent, path); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/ICollectionFolder.cs b/MediaBrowser.Controller/Entities/ICollectionFolder.cs index f4544f173e..d8b02034c7 100644 --- a/MediaBrowser.Controller/Entities/ICollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/ICollectionFolder.cs @@ -20,17 +20,4 @@ namespace MediaBrowser.Controller.Entities { bool EnableUserSpecificView { get; } } - - public static class CollectionFolderExtensions - { - public static string GetViewType(this ICollectionFolder folder, User user) - { - if (user.Configuration.PlainFolderViews.Contains(folder.Id.ToString("N"), StringComparer.OrdinalIgnoreCase)) - { - return null; - } - - return folder.CollectionType; - } - } } |
