diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/Book.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Book.cs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs new file mode 100644 index 000000000..6814570c3 --- /dev/null +++ b/MediaBrowser.Controller/Entities/Book.cs @@ -0,0 +1,72 @@ +using System; +using System.Linq; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Serialization; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Controller.Entities +{ + public class Book : BaseItem, IHasLookupInfo<BookInfo>, IHasSeries + { + [IgnoreDataMember] + public override string MediaType + { + get + { + return Model.Entities.MediaType.Book; + } + } + + [IgnoreDataMember] + public string SeriesPresentationUniqueKey { get; set; } + [IgnoreDataMember] + public string SeriesName { get; set; } + [IgnoreDataMember] + public Guid SeriesId { get; set; } + + public string FindSeriesSortName() + { + return SeriesName; + } + public string FindSeriesName() + { + return SeriesName; + } + public string FindSeriesPresentationUniqueKey() + { + return SeriesPresentationUniqueKey; + } + + public Guid FindSeriesId() + { + return SeriesId; + } + + public override bool CanDownload() + { + return IsFileProtocol; + } + + public override UnratedItem GetBlockUnratedType() + { + return UnratedItem.Book; + } + + public BookInfo GetLookupInfo() + { + var info = GetItemLookupInfo<BookInfo>(); + + if (string.IsNullOrEmpty(SeriesName)) + { + info.SeriesName = GetParents().Select(i => i.Name).FirstOrDefault(); + } + else + { + info.SeriesName = SeriesName; + } + + return info; + } + } +} |
