From e7e18af2d76e1d44a9ca80644b9cd562059626c4 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 4 Sep 2013 13:07:35 -0400 Subject: [PATCH] fixes #433 - Add root collection type to ItemResolveArgs --- MediaBrowser.Controller/Entities/BaseItem.cs | 4 ++-- MediaBrowser.Controller/Library/ItemResolveArgs.cs | 11 +++++++++-- .../Library/LibraryManager.cs | 2 +- .../Library/Resolvers/Audio/MusicAlbumResolver.cs | 9 +-------- .../Library/Resolvers/Audio/MusicArtistResolver.cs | 9 +-------- .../Library/Resolvers/Movies/MovieResolver.cs | 8 ++++---- .../Library/Resolvers/TV/SeriesResolver.cs | 9 +-------- 7 files changed, 19 insertions(+), 33 deletions(-) diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index a15c30e425..fb22607692 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -327,7 +327,7 @@ namespace MediaBrowser.Controller.Entities if (LocationType == LocationType.Remote || LocationType == LocationType.Virtual) { - return new ItemResolveArgs(ConfigurationManager.ApplicationPaths); + return new ItemResolveArgs(ConfigurationManager.ApplicationPaths, LibraryManager); } var isDirectory = false; @@ -345,7 +345,7 @@ namespace MediaBrowser.Controller.Entities throw new IOException("Unable to retrieve file system info for " + path); } - var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths) + var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths, LibraryManager) { FileInfo = pathInfo, Path = path, diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs index 109ffe7e7e..2bae106f3b 100644 --- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs @@ -1,5 +1,4 @@ using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using System; using System.Collections.Generic; using System.IO; @@ -17,14 +16,17 @@ namespace MediaBrowser.Controller.Library /// The _app paths /// private readonly IServerApplicationPaths _appPaths; + private readonly ILibraryManager _libraryManager; /// /// Initializes a new instance of the class. /// /// The app paths. - public ItemResolveArgs(IServerApplicationPaths appPaths) + /// The library manager. + public ItemResolveArgs(IServerApplicationPaths appPaths, ILibraryManager libraryManager) { _appPaths = appPaths; + _libraryManager = libraryManager; } /// @@ -368,6 +370,11 @@ namespace MediaBrowser.Controller.Library return GetFileSystemEntryByName(name) != null; } + public string GetCollectionType() + { + return Parent == null ? null : _libraryManager.FindCollectionType(Parent); + } + #region Equality Overrides /// diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index bdb4f28e43..7df08691a3 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -441,7 +441,7 @@ namespace MediaBrowser.Server.Implementations.Library throw new ArgumentNullException("fileInfo"); } - var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths) + var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths, this) { Parent = parent, Path = fileInfo.FullName, diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs index 0ac0f0533b..e35352407a 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs @@ -14,13 +14,6 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio /// public class MusicAlbumResolver : ItemResolver { - private readonly ILibraryManager _libraryManager; - - public MusicAlbumResolver(ILibraryManager libraryManager) - { - _libraryManager = libraryManager; - } - /// /// Gets the priority. /// @@ -44,7 +37,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio if (args.Parent.IsRoot) return null; if (args.Parent is MusicAlbum) return null; - var collectionType = args.Parent == null ? null : _libraryManager.FindCollectionType(args.Parent); + var collectionType = args.GetCollectionType(); // If there's a collection type and it's not music, it can't be a series if (!string.IsNullOrEmpty(collectionType) && diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs index e2c71f613b..8aafbb0f77 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs @@ -13,13 +13,6 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio /// public class MusicArtistResolver : ItemResolver { - private readonly ILibraryManager _libraryManager; - - public MusicArtistResolver(ILibraryManager libraryManager) - { - _libraryManager = libraryManager; - } - /// /// Gets the priority. /// @@ -48,7 +41,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio return null; } - var collectionType = args.Parent == null ? null : _libraryManager.FindCollectionType(args.Parent); + var collectionType = args.GetCollectionType(); // If there's a collection type and it's not music, it can't be a series if (!string.IsNullOrEmpty(collectionType) && diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs index 18f4641412..0f87b9d337 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs @@ -17,12 +17,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies /// public class MovieResolver : BaseVideoResolver