sonarr-repo-only/NzbDrone.Core/Tvdb/TvdbSeriesBase.cs

132 lines
3.1 KiB
C#
Raw Normal View History

using System;
using System.Globalization;
using System.Linq;
using System.Xml.Serialization;
namespace NzbDrone.Core.Tvdb
{
[XmlRoot(ElementName = "Data")]
public class TvdbSeriesRecordRoot
{
[XmlElement]
public TvdbSeriesBase Series { get; set; }
}
public class TvdbSeriesBase
{
[XmlElement]
public int id { get; set; }
[XmlElement]
public string Actors { get; set; }
[XmlElement]
public string Airs_DayOfWeek { get; set; }
[XmlElement]
public string Airs_Time { get; set; }
[XmlElement]
public string ContentRating { get; set; }
[XmlElement(ElementName = "FirstAired")]
public string FirstAiredString
{
get { return FirstAired.HasValue ? FirstAired.Value.ToString("yyyy-MM-dd") : null; }
set
{
DateTime d;
if(DateTime.TryParse(value, out d))
FirstAired = d;
else
FirstAired = null;
}
}
[XmlIgnore]
public DateTime? FirstAired { get; set; }
[XmlElement]
public string Genre { get; set; }
[XmlElement]
public string IMDB_ID { get; set; }
[XmlElement]
public string Language { get; set; }
[XmlElement]
public string Network { get; set; }
[XmlElement]
public string Overview { get; set; }
[XmlElement("Rating")]
public string RatingString
{
get { return Rating.HasValue ? Rating.Value.ToString() : null; }
set
{
double d;
if(double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out d))
Rating = d;
else
Rating = null;
}
}
[XmlIgnore]
public double? Rating { get; set; }
[XmlElement]
public int? RatingCount { get; set; }
[XmlElement]
public int? Runtime { get; set; }
[XmlElement]
public string SeriesIDString
{
get { return SeriesID.HasValue ? SeriesID.Value.ToString() : null; }
set
{
int i;
if(int.TryParse(value, out i))
SeriesID = i;
else
SeriesID = null;
}
}
[XmlIgnore]
public int? SeriesID { get; set; }
[XmlElement]
public string SeriesName { get; set; }
[XmlElement]
public string Status { get; set; }
[XmlElement]
public string added { get; set; }
[XmlElement]
public string addedBy { get; set; }
[XmlElement]
public string banner { get; set; }
[XmlElement]
public string fanart { get; set; }
[XmlElement]
public Int64 lastupdated { get; set; }
[XmlElement]
public string poster { get; set; }
[XmlElement]
public string zap2it_id { get; set; }
}
}