using System; using System.Collections.Generic; using System.Linq; using NzbDrone.Api.REST; using NzbDrone.Core.MediaCover; using NzbDrone.Core.Tv; namespace NzbDrone.Api.Series { public class SeriesResource : RestResource { //Todo: Sorters should be done completely on the client //Todo: Is there an easy way to keep IgnoreArticlesWhenSorting in sync between, Series, History, Missing? //Todo: We should get the entire Profile instead of ID and Name separately //View Only public String Title { get; set; } public List AlternateTitles { get; set; } public String SortTitle { get; set; } public Int32 SeasonCount { get { if (Seasons == null) return 0; return Seasons.Where(s => s.SeasonNumber > 0).Count(); } } public Int32? TotalEpisodeCount { get; set; } public Int32? EpisodeCount { get; set; } public Int32? EpisodeFileCount { get; set; } public Int64? SizeOnDisk { get; set; } public SeriesStatusType Status { get; set; } public String ProfileName { get; set; } public String Overview { get; set; } public DateTime? NextAiring { get; set; } public DateTime? PreviousAiring { get; set; } public String Network { get; set; } public String AirTime { get; set; } public List Images { get; set; } public String RemotePoster { get; set; } public List Seasons { get; set; } public Int32 Year { get; set; } //View & Edit public String Path { get; set; } public Int32 ProfileId { get; set; } //Editing Only public Boolean SeasonFolder { get; set; } public Boolean Monitored { get; set; } public Boolean UseSceneNumbering { get; set; } public Int32 Runtime { get; set; } public Int32 TvdbId { get; set; } public Int32 TvRageId { get; set; } public DateTime? FirstAired { get; set; } public DateTime? LastInfoSync { get; set; } public SeriesTypes SeriesType { get; set; } public String CleanTitle { get; set; } public String ImdbId { get; set; } public String TitleSlug { get; set; } public String RootFolderPath { get; set; } public String Certification { get; set; } public List Genres { get; set; } public HashSet Tags { get; set; } public DateTime Added { get; set; } public AddSeriesOptions AddOptions { get; set; } public Ratings Ratings { get; set; } //TODO: Add series statistics as a property of the series (instead of individual properties) //Used to support legacy consumers public Int32 QualityProfileId { get { return ProfileId; } set { if (value > 0 && ProfileId == 0) { ProfileId = value; } } } } }