using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Library;
namespace MediaBrowser.Model.LiveTv
{
[DebuggerDisplay("Name = {Name}, StartTime = {StartDate}, EndTime = {EndDate}")]
public class ProgramInfoDto : IHasPropertyChangedEvent, IItemDto
{
///
/// Id of the program.
///
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 original primary image aspect ratio.
///
/// The original primary image aspect ratio.
public double? OriginalPrimaryImageAspectRatio { get; set; }
///
/// Gets or sets the type of the media.
///
/// The type of the media.
public string MediaType { get; set; }
///
/// Gets or sets the timer identifier.
///
/// The timer identifier.
public string TimerId { 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 channel identifier.
///
/// The channel identifier.
public string ChannelId { get; set; }
///
/// Gets or sets the channel primary image tag.
///
/// The channel primary image tag.
public string ChannelPrimaryImageTag { get; set; }
///
/// Gets or sets the play access.
///
/// The play access.
public PlayAccess PlayAccess { get; set; }
///
/// Gets or sets the name of the channel.
///
/// The name of the channel.
public string ChannelName { get; set; }
///
/// Gets or sets the community rating.
///
/// The community rating.
public float? CommunityRating { get; set; }
///
/// Gets or sets the official rating.
///
/// The official rating.
public string OfficialRating { get; set; }
///
/// Gets or sets the name of the service.
///
/// The name of the service.
public string ServiceName { get; set; }
///
/// Name of the program
///
public string Name { get; set; }
///
/// Overview of the recording.
///
public string Overview { get; set; }
///
/// The start date of the program, in UTC.
///
public DateTime StartDate { get; set; }
///
/// The end date of the program, in UTC.
///
public DateTime EndDate { get; set; }
///
/// Genre of the program.
///
public List Genres { 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 the original air date.
///
/// The original air date.
public DateTime? OriginalAirDate { 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 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 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 the type.
///
/// The type.
public string Type { get; set; }
///
/// Gets or sets the run time ticks.
///
/// The run time ticks.
public long? RunTimeTicks { 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 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); }
}
public ProgramInfoDto()
{
Genres = new List();
ImageTags = new Dictionary();
}
public event PropertyChangedEventHandler PropertyChanged;
}
}