diff options
Diffstat (limited to 'MediaBrowser.Controller/Library/DtoBuilder.cs')
| -rw-r--r-- | MediaBrowser.Controller/Library/DtoBuilder.cs | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/MediaBrowser.Controller/Library/DtoBuilder.cs b/MediaBrowser.Controller/Library/DtoBuilder.cs index 30a14bf97..c3fa38ebf 100644 --- a/MediaBrowser.Controller/Library/DtoBuilder.cs +++ b/MediaBrowser.Controller/Library/DtoBuilder.cs @@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Library /// <param name="fields">The fields.</param> /// <returns>Task{DtoBaseItem}.</returns> /// <exception cref="System.ArgumentNullException">item</exception> - public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, List<ItemFields> fields) + public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, List<ItemFields> fields, ILibraryManager libraryManager) { if (item == null) { @@ -73,7 +73,7 @@ namespace MediaBrowser.Controller.Library if (fields.Contains(ItemFields.People)) { - tasks.Add(AttachPeople(dto, item)); + tasks.Add(AttachPeople(dto, item, libraryManager)); } AttachBasicFields(dto, item, fields); @@ -86,16 +86,17 @@ namespace MediaBrowser.Controller.Library return dto; } - + /// <summary> /// Converts a BaseItem to a DTOBaseItem /// </summary> /// <param name="item">The item.</param> /// <param name="user">The user.</param> /// <param name="fields">The fields.</param> + /// <param name="libraryManager">The library manager.</param> /// <returns>Task{DtoBaseItem}.</returns> - /// <exception cref="System.ArgumentNullException"></exception> - public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, User user, List<ItemFields> fields) + /// <exception cref="System.ArgumentNullException">item</exception> + public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, User user, List<ItemFields> fields, ILibraryManager libraryManager) { if (item == null) { @@ -134,7 +135,7 @@ namespace MediaBrowser.Controller.Library if (fields.Contains(ItemFields.People)) { - tasks.Add(AttachPeople(dto, item)); + tasks.Add(AttachPeople(dto, item, libraryManager)); } AttachBasicFields(dto, item, fields); @@ -558,8 +559,9 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> + /// <param name="libraryManager">The library manager.</param> /// <returns>Task.</returns> - private async Task AttachPeople(BaseItemDto dto, BaseItem item) + private async Task AttachPeople(BaseItemDto dto, BaseItem item, ILibraryManager libraryManager) { if (item.People == null) { @@ -575,7 +577,7 @@ namespace MediaBrowser.Controller.Library { try { - return await Kernel.Instance.LibraryManager.GetPerson(c.Name).ConfigureAwait(false); + return await libraryManager.GetPerson(c.Name).ConfigureAwait(false); } catch (IOException ex) { @@ -662,7 +664,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="changeEvent">The <see cref="ChildrenChangedEventArgs" /> instance containing the event data.</param> /// <returns>LibraryUpdateInfo.</returns> - internal static LibraryUpdateInfo GetLibraryUpdateInfo(ChildrenChangedEventArgs changeEvent) + public static LibraryUpdateInfo GetLibraryUpdateInfo(ChildrenChangedEventArgs changeEvent) { return new LibraryUpdateInfo { @@ -823,7 +825,7 @@ namespace MediaBrowser.Controller.Library /// <param name="id">The id.</param> /// <param name="userId">The user id.</param> /// <returns>BaseItem.</returns> - public static BaseItem GetItemByClientId(string id, IUserManager userManager, Guid? userId = null) + public static BaseItem GetItemByClientId(string id, IUserManager userManager, ILibraryManager libraryManager, Guid? userId = null) { var isIdEmpty = string.IsNullOrEmpty(id); @@ -835,7 +837,7 @@ namespace MediaBrowser.Controller.Library { if (userId.HasValue) { - return GetIndexFolder(id, userId.Value, userManager); + return GetIndexFolder(id, userId.Value, userManager, libraryManager); } } @@ -845,11 +847,11 @@ namespace MediaBrowser.Controller.Library { item = isIdEmpty ? userManager.GetUserById(userId.Value).RootFolder - : Kernel.Instance.GetItemById(new Guid(id), userId.Value, userManager); + : libraryManager.GetItemById(new Guid(id), userId.Value); } else if (!isIndexFolder) { - item = Kernel.Instance.GetItemById(new Guid(id)); + item = libraryManager.GetItemById(new Guid(id)); } // If we still don't find it, look within individual user views @@ -857,7 +859,7 @@ namespace MediaBrowser.Controller.Library { foreach (var user in userManager.Users) { - item = GetItemByClientId(id, userManager, user.Id); + item = GetItemByClientId(id, userManager, libraryManager, user.Id); if (item != null) { @@ -875,7 +877,7 @@ namespace MediaBrowser.Controller.Library /// <param name="id">The id.</param> /// <param name="userId">The user id.</param> /// <returns>BaseItem.</returns> - private static BaseItem GetIndexFolder(string id, Guid userId, IUserManager userManager) + private static BaseItem GetIndexFolder(string id, Guid userId, IUserManager userManager, ILibraryManager libraryManager) { var user = userManager.GetUserById(userId); @@ -885,7 +887,7 @@ namespace MediaBrowser.Controller.Library var values = id.Split(stringSeparators, StringSplitOptions.None).ToList(); // Get the top folder normally using the first id - var folder = GetItemByClientId(values[0], userManager, userId) as Folder; + var folder = GetItemByClientId(values[0], userManager, libraryManager, userId) as Folder; values.RemoveAt(0); |
