From a60cb280a3d31ba19ffb3a94cf83ef300a7473b7 Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Thu, 20 Jan 2022 08:46:17 -0700 Subject: Properly populate QueryResult --- .../Channels/ChannelManager.cs | 36 ++++++------- .../Data/SqliteItemRepository.cs | 21 ++++---- .../Library/LibraryManager.cs | 16 +++--- .../Library/SearchEngine.cs | 10 ++-- .../LiveTv/LiveTvManager.cs | 60 ++++++++-------------- Emby.Server.Implementations/TV/TVSeriesManager.cs | 9 ++-- 6 files changed, 63 insertions(+), 89 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/Channels/ChannelManager.cs b/Emby.Server.Implementations/Channels/ChannelManager.cs index 43c8a451b..548ebc3fc 100644 --- a/Emby.Server.Implementations/Channels/ChannelManager.cs +++ b/Emby.Server.Implementations/Channels/ChannelManager.cs @@ -264,11 +264,10 @@ namespace Emby.Server.Implementations.Channels } } - return new QueryResult - { - Items = all, - TotalRecordCount = totalCount - }; + return new QueryResult( + query.StartIndex, + totalCount, + all); } /// @@ -285,11 +284,10 @@ namespace Emby.Server.Implementations.Channels // TODO Fix The co-variant conversion (internalResult.Items) between Folder[] and BaseItem[], this can generate runtime issues. var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, dtoOptions, user); - var result = new QueryResult - { - Items = returnItems, - TotalRecordCount = internalResult.TotalRecordCount - }; + var result = new QueryResult( + query.StartIndex, + internalResult.TotalRecordCount, + returnItems); return result; } @@ -620,11 +618,10 @@ namespace Emby.Server.Implementations.Channels var returnItems = _dtoService.GetBaseItemDtos(items, query.DtoOptions, query.User); - var result = new QueryResult - { - Items = returnItems, - TotalRecordCount = totalRecordCount - }; + var result = new QueryResult( + query.StartIndex, + totalRecordCount, + returnItems); return result; } @@ -786,11 +783,10 @@ namespace Emby.Server.Implementations.Channels var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, query.DtoOptions, query.User); - var result = new QueryResult - { - Items = returnItems, - TotalRecordCount = internalResult.TotalRecordCount - }; + var result = new QueryResult( + query.StartIndex, + internalResult.TotalRecordCount, + returnItems); return result; } diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 5ab9e02fe..1da9b4650 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -2810,11 +2810,10 @@ namespace Emby.Server.Implementations.Data if (!query.EnableTotalRecordCount || (!query.Limit.HasValue && (query.StartIndex ?? 0) == 0)) { var returnList = GetItemList(query); - return new QueryResult - { - Items = returnList, - TotalRecordCount = returnList.Count - }; + return new QueryResult( + query.StartIndex, + returnList.Count, + returnList); } var now = DateTime.UtcNow; @@ -2978,6 +2977,7 @@ namespace Emby.Server.Implementations.Data ReadTransactionMode); } + result.StartIndex = query.StartIndex ?? 0; result.Items = list; return result; } @@ -3265,11 +3265,10 @@ namespace Emby.Server.Implementations.Data if (!query.EnableTotalRecordCount || (!query.Limit.HasValue && (query.StartIndex ?? 0) == 0)) { var returnList = GetItemIdsList(query); - return new QueryResult - { - Items = returnList, - TotalRecordCount = returnList.Count - }; + return new QueryResult( + query.StartIndex, + returnList.Count, + returnList); } var now = DateTime.UtcNow; @@ -3395,6 +3394,7 @@ namespace Emby.Server.Implementations.Data LogQueryTime("GetItemIds", commandText, now); + result.StartIndex = query.StartIndex ?? 0; result.Items = list; return result; } @@ -5599,6 +5599,7 @@ AND Type = @InternalPersonType)"); result.TotalRecordCount = list.Count; } + result.StartIndex = query.StartIndex ?? 0; result.Items = list; return result; diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index bd0c178fd..262d9fed7 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -1360,10 +1360,10 @@ namespace Emby.Server.Implementations.Library return _itemRepository.GetItems(query); } - return new QueryResult - { - Items = _itemRepository.GetItemList(query) - }; + return new QueryResult( + query.StartIndex, + null, + _itemRepository.GetItemList(query)); } public List GetItemIds(InternalItemsQuery query) @@ -1493,10 +1493,10 @@ namespace Emby.Server.Implementations.Library return _itemRepository.GetItems(query); } - return new QueryResult - { - Items = _itemRepository.GetItemList(query) - }; + return new QueryResult( + query.StartIndex, + null, + _itemRepository.GetItemList(query)); } private void SetTopParentIdsOrAncestors(InternalItemsQuery query, List parents) diff --git a/Emby.Server.Implementations/Library/SearchEngine.cs b/Emby.Server.Implementations/Library/SearchEngine.cs index 55911933a..70d9cbc98 100644 --- a/Emby.Server.Implementations/Library/SearchEngine.cs +++ b/Emby.Server.Implementations/Library/SearchEngine.cs @@ -48,12 +48,10 @@ namespace Emby.Server.Implementations.Library results = results.GetRange(0, Math.Min(query.Limit.Value, results.Count)); } - return new QueryResult - { - TotalRecordCount = totalRecordCount, - - Items = results - }; + return new QueryResult( + query.StartIndex, + totalRecordCount, + results); } private static void AddIfMissing(List list, BaseItemKind value) diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs index aa3598c8b..8d0f18d9b 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs @@ -857,11 +857,10 @@ namespace Emby.Server.Implementations.LiveTv var returnArray = _dtoService.GetBaseItemDtos(queryResult.Items, options, user); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = queryResult.TotalRecordCount - }; + return new QueryResult( + query.StartIndex, + queryResult.TotalRecordCount, + returnArray); } public QueryResult GetRecommendedProgramsInternal(InternalItemsQuery query, DtoOptions options, CancellationToken cancellationToken) @@ -910,11 +909,10 @@ namespace Emby.Server.Implementations.LiveTv programs = programs.Take(query.Limit.Value); } - return new QueryResult - { - Items = programs.ToArray(), - TotalRecordCount = totalCount - }; + return new QueryResult( + query.StartIndex, + totalCount, + programs.ToArray()); } public QueryResult GetRecommendedPrograms(InternalItemsQuery query, DtoOptions options, CancellationToken cancellationToken) @@ -928,11 +926,10 @@ namespace Emby.Server.Implementations.LiveTv var internalResult = GetRecommendedProgramsInternal(query, options, cancellationToken); - return new QueryResult - { - Items = _dtoService.GetBaseItemDtos(internalResult.Items, options, query.User), - TotalRecordCount = internalResult.TotalRecordCount - }; + return new QueryResult( + query.StartIndex, + internalResult.TotalRecordCount, + _dtoService.GetBaseItemDtos(internalResult.Items, options, query.User)); } private int GetRecommendationScore(LiveTvProgram program, User user, bool factorChannelWatchCount) @@ -1541,11 +1538,10 @@ namespace Emby.Server.Implementations.LiveTv var returnArray = _dtoService.GetBaseItemDtos(internalResult.Items, options, user); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = internalResult.TotalRecordCount - }; + return new QueryResult( + query.StartIndex, + internalResult.TotalRecordCount, + returnArray); } private async Task> GetTimersInternal(TimerQuery query, CancellationToken cancellationToken) @@ -1615,11 +1611,7 @@ namespace Emby.Server.Implementations.LiveTv .OrderBy(i => i.StartDate) .ToArray(); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; + return new QueryResult(returnArray); } public async Task> GetTimers(TimerQuery query, CancellationToken cancellationToken) @@ -1701,11 +1693,7 @@ namespace Emby.Server.Implementations.LiveTv .OrderBy(i => i.StartDate) .ToArray(); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; + return new QueryResult(returnArray); } public async Task CancelTimer(string id) @@ -1801,11 +1789,7 @@ namespace Emby.Server.Implementations.LiveTv .Select(i => i.Item1) .ToArray(); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; + return new QueryResult(returnArray); } public async Task> GetSeriesTimers(SeriesTimerQuery query, CancellationToken cancellationToken) @@ -1855,11 +1839,7 @@ namespace Emby.Server.Implementations.LiveTv }) .ToArray(); - return new QueryResult - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; + return new QueryResult(returnArray); } public BaseItem GetLiveTvChannel(TimerInfo timer, ILiveTvService service) diff --git a/Emby.Server.Implementations/TV/TVSeriesManager.cs b/Emby.Server.Implementations/TV/TVSeriesManager.cs index c994ffc90..a18af27f3 100644 --- a/Emby.Server.Implementations/TV/TVSeriesManager.cs +++ b/Emby.Server.Implementations/TV/TVSeriesManager.cs @@ -304,11 +304,10 @@ namespace Emby.Server.Implementations.TV items = items.Take(query.Limit.Value); } - return new QueryResult - { - TotalRecordCount = totalCount, - Items = items.ToArray() - }; + return new QueryResult( + query.StartIndex, + totalCount, + items.ToArray()); } } } -- cgit v1.2.3