From 9f06eb781f5992496a7b1a59fb55b0aa6520261f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 31 Mar 2013 13:39:28 -0400 Subject: fixes #97 and creates a library dictionary cache to avoid FindById recursion --- MediaBrowser.Controller/Library/DtoBuilder.cs | 16 ++++++++++------ MediaBrowser.Controller/Library/ILibraryManager.cs | 8 -------- 2 files changed, 10 insertions(+), 14 deletions(-) (limited to 'MediaBrowser.Controller/Library') diff --git a/MediaBrowser.Controller/Library/DtoBuilder.cs b/MediaBrowser.Controller/Library/DtoBuilder.cs index c3102ab64c..36c7eba1fb 100644 --- a/MediaBrowser.Controller/Library/DtoBuilder.cs +++ b/MediaBrowser.Controller/Library/DtoBuilder.cs @@ -809,15 +809,19 @@ namespace MediaBrowser.Controller.Library /// Gets a BaseItem based upon it's client-side item id /// /// The id. + /// The user manager. + /// The library manager. /// The user id. /// BaseItem. public static BaseItem GetItemByClientId(string id, IUserManager userManager, ILibraryManager libraryManager, Guid? userId = null) { - var isIdEmpty = string.IsNullOrEmpty(id); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException("id"); + } // If the item is an indexed folder we have to do a special routine to get it - var isIndexFolder = !isIdEmpty && - id.IndexOf(IndexFolderDelimeter, StringComparison.OrdinalIgnoreCase) != -1; + var isIndexFolder = id.IndexOf(IndexFolderDelimeter, StringComparison.OrdinalIgnoreCase) != -1; if (isIndexFolder) { @@ -831,9 +835,7 @@ namespace MediaBrowser.Controller.Library if (userId.HasValue) { - item = isIdEmpty - ? userManager.GetUserById(userId.Value).RootFolder - : libraryManager.GetItemById(new Guid(id), userId.Value); + item = libraryManager.GetItemById(new Guid(id)); } else if (!isIndexFolder) { @@ -862,6 +864,8 @@ namespace MediaBrowser.Controller.Library /// /// The id. /// The user id. + /// The user manager. + /// The library manager. /// BaseItem. private static BaseItem GetIndexFolder(string id, Guid userId, IUserManager userManager, ILibraryManager libraryManager) { diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 84a39db691..1b9d2f4b2a 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -136,14 +136,6 @@ namespace MediaBrowser.Controller.Library /// BaseItem. BaseItem GetItemById(Guid id); - /// - /// Gets the item by id. - /// - /// The id. - /// The user id. - /// BaseItem. - BaseItem GetItemById(Guid id, Guid userId); - /// /// Gets the intros. /// -- cgit v1.2.3