diff options
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 20 |
3 files changed, 26 insertions, 4 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index ff062c183..13996be19 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -387,7 +387,7 @@ namespace MediaBrowser.Api.UserLibrary if (!string.IsNullOrEmpty(term)) { - items = items.Where(i => i.Name.StartsWith(term, StringComparison.OrdinalIgnoreCase)); + items = _libraryManager.Search(items, request.SearchTerm); } return items; diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 40131b6d2..dd720d043 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -173,5 +173,13 @@ namespace MediaBrowser.Controller.Library /// <returns>IEnumerable{BaseItem}.</returns> IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<string> sortBy, SortOrder sortOrder); + + /// <summary> + /// Sorts the specified items. + /// </summary> + /// <param name="items">The items.</param> + /// <param name="searchTerm">The search term.</param> + /// <returns>IEnumerable{BaseItem}.</returns> + IEnumerable<BaseItem> Search(IEnumerable<BaseItem> items, string searchTerm); } }
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 6cd46a310..b99bc4f97 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -1,5 +1,4 @@ -using System.Collections; -using MediaBrowser.Common.Events; +using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller; @@ -12,7 +11,6 @@ using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; -using MediaBrowser.Server.Implementations.Library.Resolvers; using MediaBrowser.Server.Implementations.ScheduledTasks; using MoreLinq; using System; @@ -769,5 +767,21 @@ namespace MediaBrowser.Server.Implementations.Library return comparer; } + + /// <summary> + /// Sorts the specified items. + /// </summary> + /// <param name="items">The items.</param> + /// <param name="searchTerm">The search term.</param> + /// <returns>IEnumerable{BaseItem}.</returns> + public IEnumerable<BaseItem> Search(IEnumerable<BaseItem> items, string searchTerm) + { + if (string.IsNullOrEmpty(searchTerm)) + { + throw new ArgumentNullException("searchTerm"); + } + + return items.Where(i => i.Name.StartsWith(searchTerm, StringComparison.OrdinalIgnoreCase)); + } } } |
