using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Runtime.Serialization ;
namespace MediaBrowser.Controller.Entities.Audio
{
/// <summary>
/// Class MusicGenre
/// </summary>
public class MusicGenre : BaseItem , IItemByName
{
public override List < string > GetUserDataKeys ( )
{
var list = base . GetUserDataKeys ( ) ;
list . Insert ( 0 , "MusicGenre-" + Name ) ;
return list ;
}
[IgnoreDataMember]
public override bool SupportsAddingToPlaylist
{
get { return true ; }
}
/// <summary>
/// Returns the folder containing the item.
/// If the item is a folder, it returns the folder itself
/// </summary>
/// <value>The containing folder path.</value>
[IgnoreDataMember]
public override string ContainingFolderPath
{
get
{
return Path ;
}
}
public override bool CanDelete ( )
{
return false ;
}
public override bool IsSaveLocalMetadataEnabled ( )
{
return true ;
}
/// <summary>
/// Gets a value indicating whether this instance is owned item.
/// </summary>
/// <value><c>true</c> if this instance is owned item; otherwise, <c>false</c>.</value>
[IgnoreDataMember]
public override bool IsOwnedItem
{
get
{
return false ;
}
}
public IEnumerable < BaseItem > GetTaggedItems ( IEnumerable < BaseItem > inputItems )
{
return inputItems . Where ( GetItemFilter ( ) ) ;
}
public Func < BaseItem , bool > GetItemFilter ( )
{
return i = > i is IHasMusicGenres & & i . Genres . Contains ( Name , StringComparer . OrdinalIgnoreCase ) ;
}
[IgnoreDataMember]
public override bool SupportsPeople
{
get
{
return false ;
}
}
}
}