using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.LiveTv;
using System;
namespace MediaBrowser.Controller.LiveTv
{
public class LiveTvProgram : BaseItem
{
///
/// Gets the user data key.
///
/// System.String.
public override string GetUserDataKey()
{
return GetClientTypeName() + "-" + Name;
}
///
/// Id of the program.
///
public string ExternalId { get; set; }
///
/// Gets or sets the channel identifier.
///
/// The channel identifier.
public string ExternalChannelId { get; set; }
///
/// Gets or sets the type of the channel.
///
/// The type of the channel.
public ChannelType ChannelType { get; set; }
///
/// The start date of the program, in UTC.
///
public DateTime StartDate { 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 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 name of the service.
///
/// The name of the service.
public string ServiceName { get; set; }
///
/// Supply the image path if it can be accessed directly from the file system
///
/// The image path.
public string ProviderImagePath { get; set; }
///
/// Supply the image url if it can be downloaded
///
/// The image URL.
public string ProviderImageUrl { get; set; }
///
/// Gets or sets a value indicating whether this instance has image.
///
/// null if [has image] contains no value, true if [has image]; otherwise, false.
public bool? HasProviderImage { 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; }
public override string MediaType
{
get
{
return ChannelType == ChannelType.TV ? Model.Entities.MediaType.Video : Model.Entities.MediaType.Audio;
}
}
public bool IsAiring
{
get
{
var now = DateTime.UtcNow;
return now >= StartDate && now < EndDate;
}
}
public bool HasAired
{
get
{
var now = DateTime.UtcNow;
return now >= EndDate;
}
}
public override string GetClientTypeName()
{
return "Program";
}
}
}