2013-12-26 16:53:23 +00:00
|
|
|
|
using MediaBrowser.Model.Configuration;
|
2013-12-02 16:46:25 +00:00
|
|
|
|
using MediaBrowser.Model.Entities;
|
2014-01-02 03:53:27 +00:00
|
|
|
|
using MediaBrowser.Model.Querying;
|
2013-12-26 16:53:23 +00:00
|
|
|
|
using System;
|
2013-12-02 16:46:25 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
2013-02-21 01:33:05 +00:00
|
|
|
|
namespace MediaBrowser.Controller.Entities.Movies
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Class BoxSet
|
|
|
|
|
/// </summary>
|
2014-01-14 15:50:39 +00:00
|
|
|
|
public class BoxSet : Folder, IHasTrailers, IHasTags, IHasKeywords, IHasPreferredMetadataLanguage, IHasDisplayOrder
|
2013-02-21 01:33:05 +00:00
|
|
|
|
{
|
2013-12-02 16:46:25 +00:00
|
|
|
|
public BoxSet()
|
|
|
|
|
{
|
|
|
|
|
RemoteTrailers = new List<MediaUrl>();
|
|
|
|
|
LocalTrailerIds = new List<Guid>();
|
2013-12-05 16:50:21 +00:00
|
|
|
|
Tags = new List<string>();
|
2014-01-03 20:43:44 +00:00
|
|
|
|
|
|
|
|
|
DisplayOrder = ItemSortBy.PremiereDate;
|
2014-01-14 15:50:39 +00:00
|
|
|
|
Keywords = new List<string>();
|
2013-12-02 16:46:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<Guid> LocalTrailerIds { get; set; }
|
2014-01-02 03:53:27 +00:00
|
|
|
|
|
2013-12-02 16:46:25 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets the remote trailers.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The remote trailers.</value>
|
|
|
|
|
public List<MediaUrl> RemoteTrailers { get; set; }
|
2013-12-05 16:50:21 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets the tags.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The tags.</value>
|
|
|
|
|
public List<string> Tags { get; set; }
|
2014-01-14 15:50:39 +00:00
|
|
|
|
public List<string> Keywords { get; set; }
|
2013-12-26 16:53:23 +00:00
|
|
|
|
|
2013-12-27 00:23:58 +00:00
|
|
|
|
public string PreferredMetadataLanguage { get; set; }
|
|
|
|
|
|
2013-12-28 16:58:13 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets the preferred metadata country code.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The preferred metadata country code.</value>
|
|
|
|
|
public string PreferredMetadataCountryCode { get; set; }
|
|
|
|
|
|
2014-01-03 20:32:27 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets the display order.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The display order.</value>
|
|
|
|
|
public string DisplayOrder { get; set; }
|
|
|
|
|
|
2013-12-26 16:53:23 +00:00
|
|
|
|
protected override bool GetBlockUnratedValue(UserConfiguration config)
|
|
|
|
|
{
|
|
|
|
|
return config.BlockUnratedMovies;
|
|
|
|
|
}
|
2014-01-02 03:53:27 +00:00
|
|
|
|
|
|
|
|
|
public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
|
|
|
|
|
{
|
|
|
|
|
var children = base.GetChildren(user, includeLinkedChildren);
|
|
|
|
|
|
2014-01-03 20:43:44 +00:00
|
|
|
|
if (string.Equals(DisplayOrder, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase))
|
2014-01-03 20:32:27 +00:00
|
|
|
|
{
|
|
|
|
|
// Sort by name
|
|
|
|
|
return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending);
|
|
|
|
|
}
|
|
|
|
|
|
2014-01-03 20:43:44 +00:00
|
|
|
|
if (string.Equals(DisplayOrder, ItemSortBy.PremiereDate, StringComparison.OrdinalIgnoreCase))
|
2014-01-03 20:32:27 +00:00
|
|
|
|
{
|
|
|
|
|
// Sort by release date
|
|
|
|
|
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Default sorting
|
2014-01-02 03:53:27 +00:00
|
|
|
|
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending);
|
|
|
|
|
}
|
2013-02-21 01:33:05 +00:00
|
|
|
|
}
|
|
|
|
|
}
|