aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/GamesService.cs
diff options
context:
space:
mode:
authorAlex Stevens <ads@chubbymusic.co.uk>2016-06-01 19:06:54 +0100
committerAlex Stevens <ads@chubbymusic.co.uk>2016-06-01 19:06:54 +0100
commitcf1fa24e8b40ab6c1d3f8c1d2e64a4df9b5e89f4 (patch)
tree107702357d39045760e41ab54e7fa82be018e7bd /MediaBrowser.Api/GamesService.cs
parenta3c3fff39f64c5966cb18616dcb444ee0135df87 (diff)
parenta8c11c0fd2c6517205e3b47a7ec63b825c1b85c8 (diff)
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'MediaBrowser.Api/GamesService.cs')
-rw-r--r--MediaBrowser.Api/GamesService.cs41
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;
}
}
}