using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using System.Collections.Generic; using System.Linq; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Users; namespace MediaBrowser.Controller.Entities { public class Book : BaseItem, IHasTags, IHasPreferredMetadataLanguage, IHasLookupInfo, IHasSeries { public override string MediaType { get { return Model.Entities.MediaType.Book; } } /// /// Gets or sets the tags. /// /// The tags. public List Tags { get; set; } public string SeriesName { get; set; } public string PreferredMetadataLanguage { get; set; } /// /// Gets or sets the preferred metadata country code. /// /// The preferred metadata country code. public string PreferredMetadataCountryCode { get; set; } public Book() { Tags = new List(); } public override bool CanDownload() { var locationType = LocationType; return locationType != LocationType.Remote && locationType != LocationType.Virtual; } protected override bool GetBlockUnratedValue(UserPolicy config) { return config.BlockUnratedItems.Contains(UnratedItem.Book); } public BookInfo GetLookupInfo() { var info = GetItemLookupInfo(); if (string.IsNullOrEmpty(SeriesName)) { info.SeriesName = Parents.Select(i => i.Name).FirstOrDefault(); } else { info.SeriesName = SeriesName; } return info; } } }