diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-01 14:17:55 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-01 14:17:55 -0400 |
| commit | 708a8115d5bd53fb079d5f0a9109b4df12f417f9 (patch) | |
| tree | c3bfc201e9d64b09fded0f89f6ac2249bc738981 /MediaBrowser.Api | |
| parent | 57449f62c16a23448770375b04c4786431170c84 (diff) | |
added game xml saving
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/BaseApiService.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/GameGenresService.cs | 2 |
3 files changed, 29 insertions, 9 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index 5147e93dbc..193a23b3e5 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -117,7 +117,7 @@ namespace MediaBrowser.Api protected Task<GameGenre> GetGameGenre(string name, ILibraryManager libraryManager) { - return libraryManager.GetGameGenre(DeSlugGenreName(name, libraryManager)); + return libraryManager.GetGameGenre(DeSlugGameGenreName(name, libraryManager)); } protected Task<Person> GetPerson(string name, ILibraryManager libraryManager) @@ -174,6 +174,26 @@ namespace MediaBrowser.Api }) ?? name; } + protected string DeSlugGameGenreName(string name, ILibraryManager libraryManager) + { + if (name.IndexOf(SlugChar) == -1) + { + return name; + } + + return libraryManager.RootFolder.RecursiveChildren + .OfType<Game>() + .SelectMany(i => i.Genres) + .Distinct(StringComparer.OrdinalIgnoreCase) + .FirstOrDefault(i => + { + i = _dashReplaceChars.Aggregate(i, (current, c) => current.Replace(c, SlugChar)); + + return string.Equals(i, name, StringComparison.OrdinalIgnoreCase); + + }) ?? name; + } + /// <summary> /// Deslugs a studio name by finding the correct entry in the library /// </summary> diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index 71f1e0ddc5..a86db896b0 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -68,7 +68,7 @@ namespace MediaBrowser.Api [ApiMember(Name = "GenreName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public string GenreName { get; set; } } - + public class ItemUpdateService : BaseApiService { private readonly ILibraryManager _libraryManager; @@ -105,7 +105,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdatePerson request) { - var item = await _libraryManager.GetPerson(request.PersonName).ConfigureAwait(false); + var item = await GetPerson(request.PersonName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); @@ -121,7 +121,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdateArtist request) { - var item = await _libraryManager.GetArtist(request.ArtistName).ConfigureAwait(false); + var item = await GetArtist(request.ArtistName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); @@ -137,7 +137,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdateStudio request) { - var item = await _libraryManager.GetStudio(request.StudioName).ConfigureAwait(false); + var item = await GetStudio(request.StudioName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); @@ -153,7 +153,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdateMusicGenre request) { - var item = await _libraryManager.GetMusicGenre(request.GenreName).ConfigureAwait(false); + var item = await GetMusicGenre(request.GenreName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); @@ -169,7 +169,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdateGameGenre request) { - var item = await _libraryManager.GetGameGenre(request.GenreName).ConfigureAwait(false); + var item = await GetGameGenre(request.GenreName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); @@ -185,7 +185,7 @@ namespace MediaBrowser.Api private async Task UpdateItem(UpdateGenre request) { - var item = await _libraryManager.GetGenre(request.GenreName).ConfigureAwait(false); + var item = await GetGenre(request.GenreName, _libraryManager).ConfigureAwait(false); UpdateItem(request, item); diff --git a/MediaBrowser.Api/UserLibrary/GameGenresService.cs b/MediaBrowser.Api/UserLibrary/GameGenresService.cs index fc99ce6b80..813407e55f 100644 --- a/MediaBrowser.Api/UserLibrary/GameGenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GameGenresService.cs @@ -149,7 +149,7 @@ namespace MediaBrowser.Api.UserLibrary /// <returns>System.Object.</returns> public object Get(GetGameGenreItemCounts request) { - var name = DeSlugGenreName(request.Name, LibraryManager); + var name = DeSlugGameGenreName(request.Name, LibraryManager); var items = GetItems(request.UserId).Where(i => i.Genres != null && i.Genres.Contains(name, StringComparer.OrdinalIgnoreCase)).ToList(); |
