aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorTim Hobbs <jesus.tesh@gmail.com>2014-03-20 01:58:16 -0700
committerTim Hobbs <jesus.tesh@gmail.com>2014-03-20 01:58:16 -0700
commit436d10bef946299f67109daa91eff5cc1325f9ff (patch)
tree84e22e9f7482c7a8f1914f2aaef76198ebc7109c /MediaBrowser.Server.Implementations
parent97c38fbe8228cb2b1dff27aa2e0d8d48464801cb (diff)
parentb762d98fc45f875775e0c60c63a3b157776becdd (diff)
Merge upstream/master
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs12
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs7
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs24
-rw-r--r--MediaBrowser.Server.Implementations/Library/SearchEngine.cs2
4 files changed, 36 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index 22b7e7054..ae5bf7716 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -208,8 +208,8 @@ namespace MediaBrowser.Server.Implementations.Channels
var query = new InternalChannelItemQuery
{
- User = user,
- CategoryId = categoryId
+ User = user,
+ CategoryId = categoryId
};
var result = await channel.GetChannelItems(query, cancellationToken).ConfigureAwait(false);
@@ -236,7 +236,7 @@ namespace MediaBrowser.Server.Implementations.Channels
var tasks = items.Select(GetChannelItemEntity);
var returnItems = await Task.WhenAll(tasks).ConfigureAwait(false);
-
+ returnItems = new BaseItem[] {};
var returnItemArray = returnItems.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToArray();
@@ -251,19 +251,25 @@ namespace MediaBrowser.Server.Implementations.Channels
{
BaseItem item;
+ Guid id;
+
if (info.Type == ChannelItemType.Category)
{
+ id = info.Id.GetMBId(typeof(ChannelCategoryItem));
item = new ChannelCategoryItem();
}
else if (info.MediaType == ChannelMediaType.Audio)
{
+ id = info.Id.GetMBId(typeof(ChannelCategoryItem));
item = new ChannelAudioItem();
}
else
{
+ id = info.Id.GetMBId(typeof(ChannelVideoItem));
item = new ChannelVideoItem();
}
+ item.Id = id;
item.Name = info.Name;
item.Genres = info.Genres;
item.CommunityRating = info.CommunityRating;
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index 19d834c20..a66cb148f 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -651,7 +651,7 @@ namespace MediaBrowser.Server.Implementations.Dto
/// <param name="chapterInfo">The chapter info.</param>
/// <param name="item">The item.</param>
/// <returns>ChapterInfoDto.</returns>
- private ChapterInfoDto GetChapterInfoDto(ChapterInfo chapterInfo, BaseItem item)
+ public ChapterInfoDto GetChapterInfoDto(ChapterInfo chapterInfo, BaseItem item)
{
var dto = new ChapterInfoDto
{
@@ -1084,11 +1084,6 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.PartCount = video.AdditionalPartIds.Count + 1;
dto.AlternateVersionCount = video.AlternateVersionCount;
- if (video.PrimaryVersionId.HasValue)
- {
- dto.PrimaryVersionId = video.PrimaryVersionId.Value.ToString("N");
- }
-
if (fields.Contains(ItemFields.Chapters))
{
dto.Chapters = _itemRepo.GetChapters(video.Id).Select(c => GetChapterInfoDto(c, item)).ToList();
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 0b1947d4c..91abb6b4f 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -26,6 +26,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MoreLinq;
using SortOrder = MediaBrowser.Model.Entities.SortOrder;
namespace MediaBrowser.Server.Implementations.Library
@@ -540,6 +541,29 @@ namespace MediaBrowser.Server.Implementations.Library
return item;
}
+ public IEnumerable<BaseItem> ReplaceVideosWithPrimaryVersions(IEnumerable<BaseItem> items)
+ {
+ return items.Select(i =>
+ {
+ var video = i as Video;
+
+ if (video != null)
+ {
+ if (video.PrimaryVersionId.HasValue)
+ {
+ var primary = GetItemById(video.PrimaryVersionId.Value) as Video;
+
+ if (primary != null)
+ {
+ return primary;
+ }
+ }
+ }
+
+ return i;
+
+ }).DistinctBy(i => i.Id);
+ }
/// <summary>
/// Ensure supplied item has only one instance throughout
diff --git a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
index aaafd35a9..f48a4430f 100644
--- a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
+++ b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
@@ -35,6 +35,8 @@ namespace MediaBrowser.Server.Implementations.Library
var inputItems = user.RootFolder.GetRecursiveChildren(user, null).Where(i => !(i is ICollectionFolder));
+ inputItems = _libraryManager.ReplaceVideosWithPrimaryVersions(inputItems);
+
var results = await GetSearchHints(inputItems, query).ConfigureAwait(false);
// Include item types