diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-06-13 02:33:29 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-06-13 02:33:29 -0400 |
| commit | 1663b258a71a164046007831e09ddd5f389b28a4 (patch) | |
| tree | 71a745cfcb64db4cf6dcf7dc5cb5313cd710c721 /MediaBrowser.Api/BaseApiService.cs | |
| parent | b5aca50c9e56580fd843f1e3baba32f9cf0231f1 (diff) | |
update home sections
Diffstat (limited to 'MediaBrowser.Api/BaseApiService.cs')
| -rw-r--r-- | MediaBrowser.Api/BaseApiService.cs | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index 0f1d240d0..d3cc18d4b 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -178,13 +178,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(MusicArtist).Name }, - DtoOptions = dtoOptions - - }).OfType<MusicArtist>().FirstOrDefault(); + var result = GetItemFromSlugName<MusicArtist>(libraryManager, name, dtoOptions); if (result != null) { @@ -199,13 +193,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(Studio).Name }, - DtoOptions = dtoOptions - - }).OfType<Studio>().FirstOrDefault(); + var result = GetItemFromSlugName<Studio>(libraryManager, name, dtoOptions); if (result != null) { @@ -220,13 +208,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(Genre).Name }, - DtoOptions = dtoOptions - - }).OfType<Genre>().FirstOrDefault(); + var result = GetItemFromSlugName<Genre>(libraryManager, name, dtoOptions); if (result != null) { @@ -241,13 +223,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(MusicGenre).Name }, - DtoOptions = dtoOptions - - }).OfType<MusicGenre>().FirstOrDefault(); + var result = GetItemFromSlugName<MusicGenre>(libraryManager, name, dtoOptions); if (result != null) { @@ -262,13 +238,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(GameGenre).Name }, - DtoOptions = dtoOptions - - }).OfType<GameGenre>().FirstOrDefault(); + var result = GetItemFromSlugName<GameGenre>(libraryManager, name, dtoOptions); if (result != null) { @@ -283,13 +253,7 @@ namespace MediaBrowser.Api { if (name.IndexOf(BaseItem.SlugChar) != -1) { - var result = libraryManager.GetItemList(new InternalItemsQuery - { - SlugName = name, - IncludeItemTypes = new[] { typeof(Person).Name }, - DtoOptions = dtoOptions - - }).OfType<Person>().FirstOrDefault(); + var result = GetItemFromSlugName<Person>(libraryManager, name, dtoOptions); if (result != null) { @@ -300,6 +264,42 @@ namespace MediaBrowser.Api return libraryManager.GetPerson(name); } + private T GetItemFromSlugName<T>(ILibraryManager libraryManager, string name, DtoOptions dtoOptions) + where T : BaseItem, new() + { + var result = libraryManager.GetItemList(new InternalItemsQuery + { + Name = name.Replace(BaseItem.SlugChar, '&'), + IncludeItemTypes = new[] { typeof(T).Name }, + DtoOptions = dtoOptions + + }).OfType<Person>().FirstOrDefault(); + + if (result == null) + { + result = libraryManager.GetItemList(new InternalItemsQuery + { + Name = name.Replace(BaseItem.SlugChar, '/'), + IncludeItemTypes = new[] { typeof(T).Name }, + DtoOptions = dtoOptions + + }).OfType<Person>().FirstOrDefault(); + } + + if (result == null) + { + result = libraryManager.GetItemList(new InternalItemsQuery + { + Name = name.Replace(BaseItem.SlugChar, '?'), + IncludeItemTypes = new[] { typeof(T).Name }, + DtoOptions = dtoOptions + + }).OfType<Person>().FirstOrDefault(); + } + + return result as T; + } + protected string GetPathValue(int index) { var pathInfo = Parse(Request.PathInfo); |
