using System.Runtime.Serialization; using MediaBrowser.Controller.Entities.Audio; using System; using System.Collections.Generic; using System.Linq; namespace MediaBrowser.Controller.Entities { /// <summary> /// Class Genre /// </summary> public class Genre : BaseItem, IItemByName { /// <summary> /// Gets the user data key. /// </summary> /// <returns>System.String.</returns> protected override string CreateUserDataKey() { return "Genre-" + Name; } /// <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 IsSaveLocalMetadataEnabled() { return true; } public override bool CanDelete() { return false; } /// <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 Game) && !(i is IHasMusicGenres) && i.Genres.Contains(Name, StringComparer.OrdinalIgnoreCase); } [IgnoreDataMember] public override bool SupportsPeople { get { return false; } } } }