diff options
| author | Alex Stevens <ads@chubbymusic.co.uk> | 2016-06-01 19:06:54 +0100 |
|---|---|---|
| committer | Alex Stevens <ads@chubbymusic.co.uk> | 2016-06-01 19:06:54 +0100 |
| commit | cf1fa24e8b40ab6c1d3f8c1d2e64a4df9b5e89f4 (patch) | |
| tree | 107702357d39045760e41ab54e7fa82be018e7bd /MediaBrowser.Api/GamesService.cs | |
| parent | a3c3fff39f64c5966cb18616dcb444ee0135df87 (diff) | |
| parent | a8c11c0fd2c6517205e3b47a7ec63b825c1b85c8 (diff) | |
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'MediaBrowser.Api/GamesService.cs')
| -rw-r--r-- | MediaBrowser.Api/GamesService.cs | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs index 387771b6d..cb77e62ad 100644 --- a/MediaBrowser.Api/GamesService.cs +++ b/MediaBrowser.Api/GamesService.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; +using MediaBrowser.Model.Querying; namespace MediaBrowser.Api { @@ -187,18 +188,40 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetSimilarGames request) { + var result = GetSimilarItemsResult(request); + + return ToOptimizedSerializedResultUsingCache(result); + } + + private QueryResult<BaseItemDto> GetSimilarItemsResult(BaseGetSimilarItemsFromItem request) + { + var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; + + var item = string.IsNullOrEmpty(request.Id) ? + (!string.IsNullOrWhiteSpace(request.UserId) ? user.RootFolder : + _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); + + var itemsResult = _libraryManager.GetItemList(new InternalItemsQuery(user) + { + Limit = request.Limit, + IncludeItemTypes = new[] + { + typeof(Game).Name + }, + SimilarTo = item + + }).ToList(); + var dtoOptions = GetDtoOptions(request); - var result = SimilarItemsHelper.GetSimilarItemsResult(dtoOptions, _userManager, - _itemRepo, - _libraryManager, - _userDataRepository, - _dtoService, - Logger, - request, new[] { typeof(Game) }, - SimilarItemsHelper.GetSimiliarityScore); + var result = new QueryResult<BaseItemDto> + { + Items = _dtoService.GetBaseItemDtos(itemsResult, dtoOptions, user).ToArray(), - return ToOptimizedSerializedResultUsingCache(result); + TotalRecordCount = itemsResult.Count + }; + + return result; } } } |
