| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | #nullable disable#pragma warning disable CS1591using System;using System.Linq;using System.Text.Json.Serialization;using Jellyfin.Data.Enums;using MediaBrowser.Controller.Providers;namespace MediaBrowser.Controller.Entities{    public class Book : BaseItem, IHasLookupInfo<BookInfo>, IHasSeries    {        public Book()        {            this.RunTimeTicks = TimeSpan.TicksPerSecond;        }        [JsonIgnore]        public override string MediaType => Model.Entities.MediaType.Book;        public override bool SupportsPlayedStatus => true;        public override bool SupportsPositionTicksResume => true;        [JsonIgnore]        public string SeriesPresentationUniqueKey { get; set; }        [JsonIgnore]        public string SeriesName { get; set; }        [JsonIgnore]        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;        }        /// <inheritdoc />        public override bool CanDownload()        {            return IsFileProtocol;        }        /// <inheritdoc />        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;        }    }}
 |