using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; namespace MediaBrowser.Controller.Entities.Audio { /// /// Class MusicAlbum /// public class MusicAlbum : Folder { /// /// Songs will group into us so don't also include us in the index /// /// true if [include in index]; otherwise, false. [IgnoreDataMember] public override bool IncludeInIndex { get { return false; } } /// /// Override this to true if class should be grouped under a container in indicies /// The container class should be defined via IndexContainer /// /// true if [group in index]; otherwise, false. [IgnoreDataMember] public override bool GroupInIndex { get { return true; } } /// /// The unknwon artist /// private static readonly MusicArtist UnknwonArtist = new MusicArtist { Name = "" }; /// /// Override this to return the folder that should be used to construct a container /// for this item in an index. GroupInIndex should be true as well. /// /// The index container. [IgnoreDataMember] public override Folder IndexContainer { get { return Parent as MusicArtist ?? UnknwonArtist; } } /// /// Override to point to first child (song) /// /// The production year. public override int? ProductionYear { get { var child = Children.FirstOrDefault(); return child == null ? base.ProductionYear : child.ProductionYear; } set { base.ProductionYear = value; } } /// /// Override to point to first child (song) /// /// The genres. public override List Genres { get { return Children .OfType