using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Library; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Runtime.Serialization; namespace MediaBrowser.Model.LiveTv { [DebuggerDisplay("Name = {Name}, ChannelName = {ChannelName}")] public class RecordingInfoDto : IHasPropertyChangedEvent, IItemDto, IHasServerId { /// /// Id of the recording. /// public string Id { get; set; } /// /// Gets or sets the primary image aspect ratio. /// /// The primary image aspect ratio. public double? PrimaryImageAspectRatio { get; set; } /// /// Gets or sets the server identifier. /// /// The server identifier. public string ServerId { get; set; } /// /// Gets or sets the original primary image aspect ratio. /// /// The original primary image aspect ratio. public double? OriginalPrimaryImageAspectRatio { get; set; } /// /// Gets or sets the series timer identifier. /// /// The series timer identifier. public string SeriesTimerId { get; set; } /// /// Gets or sets the external identifier. /// /// The external identifier. public string ExternalId { get; set; } /// /// Gets or sets the program identifier. /// /// The program identifier. public string ProgramId { get; set; } /// /// ChannelId of the recording. /// public string ChannelId { get; set; } /// /// Gets or sets the play access. /// /// The play access. public PlayAccess PlayAccess { get; set; } /// /// Gets or sets the channel primary image tag. /// /// The channel primary image tag. public string ChannelPrimaryImageTag { get; set; } /// /// ChannelName of the recording. /// public string ChannelName { get; set; } /// /// Gets or sets the name of the service. /// /// The name of the service. public string ServiceName { get; set; } /// /// Name of the recording. /// public string Name { get; set; } /// /// Gets or sets the media streams. /// /// The media streams. public List MediaStreams { get; set; } /// /// Gets or sets the path. /// /// The path. public string Path { get; set; } /// /// Gets or sets a value indicating whether this instance can delete. /// /// null if [can delete] contains no value, true if [can delete]; otherwise, false. public bool? CanDelete { get; set; } /// /// Overview of the recording. /// public string Overview { get; set; } /// /// The start date of the recording, in UTC. /// public DateTime StartDate { get; set; } /// /// The end date of the recording, in UTC. /// public DateTime EndDate { get; set; } /// /// Gets or sets the original air date. /// /// The original air date. public DateTime? OriginalAirDate { get; set; } /// /// Gets or sets the status. /// /// The status. public RecordingStatus Status { get; set; } /// /// Gets or sets the name of the status. /// /// The name of the status. public string StatusName { get; set; } /// /// Gets or sets the completion percentage. /// /// The completion percentage. public double? CompletionPercentage { get; set; } /// /// Genre of the program. /// public List Genres { get; set; } /// /// Gets or sets a value indicating whether this instance is repeat. /// /// true if this instance is repeat; otherwise, false. public bool IsRepeat { get; set; } /// /// Gets or sets the episode title. /// /// The episode title. public string EpisodeTitle { get; set; } /// /// Gets or sets the run time ticks. /// /// The run time ticks. public long? RunTimeTicks { get; set; } /// /// Gets or sets the type of the media. /// /// The type of the media. public string MediaType { get; set; } /// /// Gets or sets the type of the channel. /// /// The type of the channel. public ChannelType ChannelType { get; set; } /// /// Gets or sets the official rating. /// /// The official rating. public string OfficialRating { get; set; } /// /// Gets or sets the community rating. /// /// The community rating. public float? CommunityRating { get; set; } /// /// Gets or sets a value indicating whether this instance is hd. /// /// true if this instance is hd; otherwise, false. public bool? IsHD { get; set; } /// /// Gets or sets the audio. /// /// The audio. public ProgramAudio? Audio { get; set; } /// /// Gets or sets a value indicating whether this instance is movie. /// /// true if this instance is movie; otherwise, false. public bool IsMovie { get; set; } /// /// Gets or sets a value indicating whether this instance is sports. /// /// true if this instance is sports; otherwise, false. public bool IsSports { get; set; } /// /// Gets or sets a value indicating whether this instance is series. /// /// true if this instance is series; otherwise, false. public bool IsSeries { get; set; } /// /// Gets or sets a value indicating whether this instance is live. /// /// true if this instance is live; otherwise, false. public bool IsLive { get; set; } /// /// Gets or sets a value indicating whether this instance is news. /// /// true if this instance is news; otherwise, false. public bool IsNews { get; set; } /// /// Gets or sets a value indicating whether this instance is kids. /// /// true if this instance is kids; otherwise, false. public bool IsKids { get; set; } /// /// Gets or sets a value indicating whether this instance is premiere. /// /// true if this instance is premiere; otherwise, false. public bool IsPremiere { get; set; } /// /// Gets or sets the image tags. /// /// The image tags. public Dictionary ImageTags { get; set; } /// /// Gets or sets the user data. /// /// The user data. public UserItemDataDto UserData { get; set; } /// /// Gets a value indicating whether this instance has primary image. /// /// true if this instance has primary image; otherwise, false. [IgnoreDataMember] public bool HasPrimaryImage { get { return ImageTags != null && ImageTags.ContainsKey(ImageType.Primary); } } /// /// Gets or sets the type. /// /// The type. public string Type { get; set; } public List MediaSources { get; set; } public RecordingInfoDto() { Genres = new List(); ImageTags = new Dictionary(); MediaSources = new List(); } public event PropertyChangedEventHandler PropertyChanged; } }