aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-06-18 13:29:46 -0400
committerGitHub <noreply@github.com>2016-06-18 13:29:46 -0400
commitf35a5e553f2e4749d2e9f633305d45a0b2a78a82 (patch)
tree34b7271c9fd98c330bf0fc8bdf1eda78d41643f9 /MediaBrowser.Server.Implementations
parent549a571d16b3d38b3d78c64a684d8a6014e68f65 (diff)
parent29d4305732ca1d9ef8e6d35c58639e9b9b0dc24b (diff)
Merge pull request #1859 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs33
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs6
2 files changed, 18 insertions, 21 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index bb9fcc924..6339fb7b1 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -471,30 +471,16 @@ namespace MediaBrowser.Server.Implementations.Dto
{
var folder = (Folder)item;
- if (fields.Contains(ItemFields.SyncInfo))
- {
- var userData = _userDataRepository.GetUserData(user, item);
-
- // Skip the user data manager because we've already looped through the recursive tree and don't want to do it twice
- // TODO: Improve in future
- dto.UserData = GetUserItemDataDto(userData);
+ // Skip the user data manager because we've already looped through the recursive tree and don't want to do it twice
+ // TODO: Improve in future
+ dto.UserData = GetUserItemDataDto(_userDataRepository.GetUserData(user, item));
- if (item.SourceType == SourceType.Library && folder.SupportsUserDataFromChildren)
- {
- SetSpecialCounts(folder, user, dto, fields, syncProgress);
- }
+ if (item.SourceType == SourceType.Library && folder.SupportsUserDataFromChildren)
+ {
+ SetSpecialCounts(folder, user, dto, fields, syncProgress);
dto.UserData.Played = dto.UserData.PlayedPercentage.HasValue && dto.UserData.PlayedPercentage.Value >= 100;
}
- else if (item.SourceType == SourceType.Library)
- {
- dto.UserData = _userDataRepository.GetUserDataDto(item, user);
- }
- else
- {
- var userData = _userDataRepository.GetUserData(user, item);
- dto.UserData = GetUserItemDataDto(userData);
- }
if (item.SourceType == SourceType.Library)
{
@@ -549,6 +535,13 @@ namespace MediaBrowser.Server.Implementations.Dto
private int GetChildCount(Folder folder, User user)
{
+ // Right now this is too slow to calculate for top level folders on a per-user basis
+ // Just return something so that apps that are expecting a value won't think the folders are empty
+ if (folder is ICollectionFolder || folder is UserView)
+ {
+ return new Random().Next(1, 10);
+ }
+
return folder.GetChildCount(user);
}
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 878fcbe0c..e8b39a1fe 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -1735,6 +1735,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
var now = DateTime.UtcNow;
+ var list = new List<BaseItem>();
+
using (var cmd = _connection.CreateCommand())
{
cmd.CommandText = "select " + string.Join(",", GetFinalColumnsToSelect(query, _retriveItemColumns, cmd)) + GetFromText();
@@ -1778,11 +1780,13 @@ namespace MediaBrowser.Server.Implementations.Persistence
var item = GetItem(reader);
if (item != null)
{
- yield return item;
+ list.Add(item);
}
}
}
}
+
+ return list;
}
private void LogQueryTime(string methodName, IDbCommand cmd, DateTime startDate)