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; }
///
/// Gets or sets the media sources.
///
/// The media sources.
public List MediaSources { get; set; }
public RecordingInfoDto()
{
Genres = new List();
ImageTags = new Dictionary();
MediaSources = new List();
}
public event PropertyChangedEventHandler PropertyChanged;
}
}