jellyfin/MediaBrowser.Controller/Entities/Movies/BoxSet.cs

77 lines
2.6 KiB
C#
Raw Normal View History

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