commit
3e0e64b31f
|
@ -27,6 +27,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
public bool? IsLiked { get; set; }
|
||||
public bool? IsPlayed { get; set; }
|
||||
public bool? IsResumable { get; set; }
|
||||
public bool? IncludeItemsByName { get; set; }
|
||||
|
||||
public string[] MediaTypes { get; set; }
|
||||
public string[] IncludeItemTypes { get; set; }
|
||||
|
|
|
@ -1324,7 +1324,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||
|
||||
SetTopParentIdsOrAncestors(query, parents);
|
||||
|
||||
return GetItemIds(query).Select(GetItemById);
|
||||
return GetItemIds(query).Select(GetItemById).Where(i => i != null);
|
||||
}
|
||||
|
||||
public QueryResult<BaseItem> GetItemsResult(InternalItemsQuery query, IEnumerable<string> parentIds)
|
||||
|
|
|
@ -163,6 +163,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||
ExcludeItemTypes = excludeItemTypes.ToArray(),
|
||||
IncludeItemTypes = includeItemTypes.ToArray(),
|
||||
Limit = query.Limit,
|
||||
IncludeItemsByName = true
|
||||
|
||||
}, new string[] { });
|
||||
|
||||
|
|
|
@ -300,6 +300,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||
|
||||
public async Task<ILiveTvRecording> GetInternalRecording(string id, CancellationToken cancellationToken)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
throw new ArgumentNullException("id");
|
||||
}
|
||||
|
||||
var result = await GetInternalRecordings(new RecordingQuery
|
||||
{
|
||||
Id = id
|
||||
|
@ -1410,7 +1415,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||
var queryResult = _libraryManager.GetItems(internalQuery, new string[] { });
|
||||
IEnumerable<ILiveTvRecording> recordings = queryResult.Cast<ILiveTvRecording>();
|
||||
|
||||
if (!string.IsNullOrEmpty(query.Id))
|
||||
if (!string.IsNullOrWhiteSpace(query.Id))
|
||||
{
|
||||
var guid = new Guid(query.Id);
|
||||
|
||||
|
@ -1418,7 +1423,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||
.Where(i => i.Id == guid);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(query.GroupId))
|
||||
if (!string.IsNullOrWhiteSpace(query.GroupId))
|
||||
{
|
||||
var guid = new Guid(query.GroupId);
|
||||
|
||||
|
|
|
@ -1914,19 +1914,35 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||
whereClauses.Add("LocationType not in (" + val + ")");
|
||||
}
|
||||
|
||||
var enableItemsByName = query.IncludeItemsByName ?? query.IncludeItemTypes.Length > 0;
|
||||
|
||||
if (query.TopParentIds.Length == 1)
|
||||
{
|
||||
if (enableItemsByName)
|
||||
{
|
||||
whereClauses.Add("(TopParentId=@TopParentId or IsItemByName=@IsItemByName)");
|
||||
cmd.Parameters.Add(cmd, "@TopParentId", DbType.String).Value = query.TopParentIds[0];
|
||||
cmd.Parameters.Add(cmd, "@IsItemByName", DbType.Boolean).Value = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
whereClauses.Add("(TopParentId=@TopParentId)");
|
||||
}
|
||||
cmd.Parameters.Add(cmd, "@TopParentId", DbType.String).Value = query.TopParentIds[0];
|
||||
}
|
||||
if (query.TopParentIds.Length > 1)
|
||||
{
|
||||
var val = string.Join(",", query.TopParentIds.Select(i => "'" + i + "'").ToArray());
|
||||
|
||||
if (enableItemsByName)
|
||||
{
|
||||
whereClauses.Add("(IsItemByName=@IsItemByName or TopParentId in (" + val + "))");
|
||||
cmd.Parameters.Add(cmd, "@IsItemByName", DbType.Boolean).Value = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
whereClauses.Add("(TopParentId in (" + val + "))");
|
||||
}
|
||||
}
|
||||
|
||||
if (query.AncestorIds.Length == 1)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user