fixes #541 - ItemQuery returns incorrect UserData

This commit is contained in:
Luke Pulverenti
2013-09-23 10:26:20 -04:00
parent b54240f679
commit 28e788e435
6 changed files with 21 additions and 31 deletions

View File

@@ -107,13 +107,10 @@ namespace MediaBrowser.Server.Implementations.Dto
.ToArray();
}
if (fields.Contains(ItemFields.ItemCounts))
var itemByName = item as IItemByName;
if (itemByName != null)
{
var itemByName = item as IItemByName;
if (itemByName != null)
{
AttachItemByNameCounts(dto, itemByName, user);
}
AttachItemByNameCounts(dto, itemByName, user);
}
return dto;
@@ -166,18 +163,13 @@ namespace MediaBrowser.Server.Implementations.Dto
{
if (item.IsFolder)
{
var hasItemCounts = fields.Contains(ItemFields.ItemCounts);
var folder = (Folder)item;
if (hasItemCounts || fields.Contains(ItemFields.CumulativeRunTimeTicks))
dto.ChildCount = folder.GetChildren(user, true).Count();
if (!(folder is UserRootFolder))
{
var folder = (Folder)item;
if (hasItemCounts)
{
dto.ChildCount = folder.GetChildren(user, true).Count();
}
SetSpecialCounts(folder, user, dto);
SetSpecialCounts(folder, user, dto, fields);
}
}
@@ -1068,8 +1060,9 @@ namespace MediaBrowser.Server.Implementations.Dto
/// <param name="folder">The folder.</param>
/// <param name="user">The user.</param>
/// <param name="dto">The dto.</param>
/// <param name="fields">The fields.</param>
/// <returns>Task.</returns>
private void SetSpecialCounts(Folder folder, User user, BaseItemDto dto)
private void SetSpecialCounts(Folder folder, User user, BaseItemDto dto, List<ItemFields> fields)
{
var rcentlyAddedItemCount = 0;
var recursiveItemCount = 0;
@@ -1127,7 +1120,7 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.PlayedPercentage = totalPercentPlayed / recursiveItemCount;
}
if (runtime > 0)
if (runtime > 0 && fields.Contains(ItemFields.CumulativeRunTimeTicks))
{
dto.CumulativeRunTimeTicks = runtime;
}

View File

@@ -356,6 +356,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer
try
{
ProcessRequest(context);
var url = context.Request.Url.ToString();
var endPoint = context.Request.RemoteEndPoint;
LogResponse(context, url, endPoint);
}
catch (Exception ex)
{
@@ -433,9 +439,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer
var httpRes = new HttpListenerResponseWrapper(context.Response);
var handler = ServiceStackHttpHandlerFactory.GetHandler(httpReq);
var url = context.Request.Url.ToString();
var endPoint = context.Request.RemoteEndPoint;
var serviceStackHandler = handler as IServiceStackHttpHandler;
if (serviceStackHandler != null)
@@ -446,7 +449,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer
httpReq.OperationName = operationName = restHandler.RestPath.RequestType.Name;
}
serviceStackHandler.ProcessRequest(httpReq, httpRes, operationName);
LogResponse(context, url, endPoint);
return;
}
@@ -529,7 +531,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{
new ClientWebSocket();
_supportsNativeWebSocket = true;
_supportsNativeWebSocket = false;
}
catch (PlatformNotSupportedException)
{